iis 使用 LocalDB 報錯:provider: SQL Network Interfaces, error: 50


   在使用asp.net core讀取localdb數據庫時,報以下錯誤:

在與 SQL Server 建立連接時出現與網絡相關的或特定於實例的錯誤。未找到或無法訪問服務器。請驗證實例名稱是否正確並且 SQL Server 已配置為允許遠程連接。 (provider: SQL Network Interfaces, error: 50 - 發生了 Local Database Runtime 錯誤。無法創建自動實例。有關錯誤詳細信息,請參閱 Windows 應用程序事件日志。
)

最后解決方式是在IIS中使用LocalDB需要在應用程序池中加載用戶配置文件。

中途試過添加用戶權限,沒解決問題。貌似在網站目錄下是不用單獨給線程池一個用戶權限的。有一個iis用戶權限就夠了。

參考文章:LocalDB with IIS : https://blog.ianli.site/2012/09/localdb-with-iis/

給iis不同網站單獨權限: http://www.cnblogs.com/jfzhu/p/4067297.html

Using LocalDB with Full IIS, Part 1: User Profile: https://blogs.msdn.microsoft.com/sqlexpress/2011/12/08/using-localdb-with-full-iis-part-1-user-profile/

Using LocalDB with Full IIS, Part 2: Instance Ownership:https://blogs.msdn.microsoft.com/sqlexpress/2011/12/08/using-localdb-with-full-iis-part-2-instance-ownership/#UseSSE

注意看 Part2這篇文章,里面有給出三個解決iis下無法訪問sqllocaldb的方法。其實主要原因是LocalDB的訪問權限是根據訪問者來變化的。在開發模式下,LoacalDB的創建一般是Administrator用戶,開發工具VS的權限也是Administrator用戶,所以訪問LocalDB沒有出現問題。當部署到IIS后,訪問LocalDB的用戶變成了IIS對應的用戶,即‘IIS Pool\Your APPPoolName’,這時候由於IIS沒有對應的訪問權限,所以會報無法登陸的錯誤。解決方式可以參照Part2 的第二個方法。

 
       


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM