[英]“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主目錄。
你的三個選擇是:
其中,數字2是最理想的。 另外兩個在某種程度上降低了安全性 - 第一個是通過讓IIS免費統治大量文件系統(以及潛在的系統資源); 而第三個有可能打開用戶的主目錄到IIS。
由於您使用的是集成安全性,因此用戶連接必須映射到SQL Server登錄。 當您更改為IIS時,您切換了用戶,它可能無法映射到數據庫中的登錄。 您可以通過指定在數據庫中有效的用戶名和密碼來測試它。
例如:
數據源=。\\ SQLEXPRESS; AttachDbFilename = | DataDirectory | \\ MainDatabase.mdf;用戶ID = admin;密碼=密碼;用戶實例= True
確保IIS進程正在運行的用戶帳戶,因為該文件具有正確的權限。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.