2016-09-14 14 views
0

私は非常に奇妙な問題があります。私は何とかコードはまだ開発フォルダMVC 4:Webを公開してもまだ開発フォルダを参照しているのはなぜですか?

へのパスを参照している、

C:\inetpub\wwwroot\AlvinCMS

をIISにMVC 4のプログラムを発表したが、私はIISからプログラムを実行したとき(公開1を実行します) (C:\Users\Public\Documents\Projects\Alvin CMS Project\Alvin CMS\Alvin CMS)。私はシステムがこの接続文字列を使用してデータベースをアタッチしようとすると、これが証明され

public static string CreateDefaultValueDBConnectionString() 
{ 
    const string dataSource = ".\\SQLEXPRESS"; 
    const string initialCatalog = "AlvinCMS_Default"; 
    const string attachedFileName = "AlvinCMS_Default.mdf"; 

    SqlConnectionStringBuilder sqlBuilder = new SqlConnectionStringBuilder(); 
    sqlBuilder.DataSource = dataSource; 
    sqlBuilder.InitialCatalog = initialCatalog; 
    sqlBuilder.MultipleActiveResultSets = true; 
    sqlBuilder.IntegratedSecurity = true; 
    sqlBuilder.AttachDBFilename = Path.Combine(AppDomain.CurrentDomain.BaseDirectory, "App_Data", "db", "backup", attachedFileName); 

    return sqlBuilder.ConnectionString; 
} 

Path.Combine(AppDomain.CurrentDomain.BaseDirectory, "App_Data", "db", "backup", attachedFileName);は常に開発フォルダC:\Users\Public\Documents\Projects\Alvin CMS Project\Alvin CMS\Alvin CMSない、公開フォルダC:\inetpub\wwwroot\AlvinCMSを対象としています。私のビューにアクセスしようとしたときも、私はいつもこのエラーが出る

を許可されていない仮想パス別のアプリケーションへの「/DynamicForm/LoginPartial.cshtml/」マップは、どのように私は停止することができます参照していますか?

答えて

0

AppDomain.CurrentDomain.BaseDirectoryの代わりにServer.MapPathを使用しましたか?

sqlBuilder.AttachDBFilename = Path.Combine(Server.MapPath("~/App_Data/db/backup"), attachedFileName); 
関連する問題