簡體   English   中英

“從ASP.NET Dev Server遷移到IIS后,嘗試附加文件* FileName *的自動命名數據庫失敗。”錯誤

[英]“An attempt to attach an auto-named database for file *FileName* failed.” error after moving from ASP.NET Dev Server to IIS

我的ASP.NET項目在App_Data文件夾中有一個MDF數據庫。

連接字符串是:

數據源=。\\ SQLEXPRESS; AttachDbFilename = | DataDirectory | \\ MainDatabase.mdf; Integrated Security = True; User Instance = True

它工作正常,直到我更改項目參數以使用“本地IIS Web服務器”而不是“Visual Studio開發服務器”。

該項目現在生成以下SqlException

嘗試為文件C:\\ Users \\ Admin \\ documents \\ visual studio 2010 \\ Projects \\ SL \\ SL \\ App_Data \\ MainDatabase.mdf附加自動命名的數據庫失敗。 存在具有相同名稱的數據庫,或者無法打開指定的文件,或者它位於UNC共享上。

如何修改連接字符串以使其與IIS一起使用?

您可能會發現這是文件權限(錯誤確實狀態:“ 或指定的文件無法打開 ”)。 默認情況下,IIS以受限用戶身份運行,並且不太可能訪問Administrators主目錄。

你的三個選擇是:

  1. 更改IIS中應用程序池的標識,以作為有權訪問該文件夾的用戶身份運行
  2. 將MDF文件移動到IIS可以訪問的位置(然后檢查文件的權限)
  3. 更改文件的權限(可能還有上面的目錄),以便IIS可以訪問該文件。

其中,數字2是最理想的。 另外兩個在某種程度上降低了安全性 - 第一個是通過讓IIS免費統治大量文件系統(以及潛在的系統資源); 而第三個有可能打開用戶的主目錄到IIS。

由於您使用的是集成安全性,因此用戶連接必須映射到SQL Server登錄。 當您更改為IIS時,您切換了用戶,它可能無法映射到數據庫中的登錄。 您可以通過指定在數據庫中有效的用戶名和密碼來測試它。

例如:

數據源=。\\ SQLEXPRESS; AttachDbFilename = | DataDirectory | \\ MainDatabase.mdf;用戶ID = admin;密碼=密碼;用戶實例= True

確保IIS進程正在運行的用戶帳戶,因為該文件具有正確的權限。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM