2016-09-14 39 views
0

我有一個很奇怪的問題。我發表了MVC 4程序IIS到MVC 4:爲什麼發佈web仍然參考開發文件夾?

C:\inetpub\wwwroot\AlvinCMS

,但是當我運行IIS的程序(運行發佈一個),以某種方式代碼仍然引用路徑發展文件夾

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

您是否嘗試過使用Server.MapPath而不是AppDomain.CurrentDomain.BaseDirectory

sqlBuilder.AttachDBFilename = Path.Combine(Server.MapPath("~/App_Data/db/backup"), attachedFileName); 
相關問題