我創建了一個帶有用戶身份驗證的簡單ASP.Net核心應用程序(因此所有實體框架都已預先加載到Web應用程序模板中)。它連接到我的數據庫,其中connectionString
位於我的appsettings.json
文件中,其中"data source = {computerName}\\{serverName}"
設置。ASP.NET核心 - 應用程序未發佈後連接到數據庫
數據庫實例和Visual Studio位於同一臺計算機上。在開發和調試模式下,將數據返回到web api可以很好地工作。當我發佈它並嘗試從域名訪問網站時,它確實允許我查看不需要數據庫連接的網頁,但其餘需要數據庫數據的網頁返回如下頁面:
錯誤。
處理您的請求時發生錯誤。 開發模式 交換到開發環境將顯示有關發生錯誤的更詳細信息。開發環境不應在已部署的 應用程序中啓用,因爲它可能會導致從最終用戶向 例外顯示敏感信息。對於本地調試, 開發環境可以通過將 ASPNETCORE_ENVIRONMENT環境變量設置爲開發, 重新啓動應用程序來啓用。
我試圖將ASPNETCORE_ENVIRONMENT
的環境變量從開發更改爲生產,但沒有成功。
我試圖在我的project.json
文件中添加appsettings.Production.json
到publishOptions
,即使沒有文件appsettings.Production.json
,而這並沒有幫助。 dotnet publish
添加在web.config
文件中的環境現狀變量沒有工作Deployment
我需要幫助獲得發佈的Web API來開發Visual Studio安裝外部連接到我的SQL Server數據庫。
我能想到的最後一件事就是我可能對連接字符串的理解不正確。如果web api使用連接字符串從服務器端連接到數據庫,那麼它應該像在開發中調用http://localhost:port#
時那樣工作得很好,因爲它全部在同一臺機器上。但是,如果數據庫字符串需要基於客戶端調用,則必須使用域名和IP地址。 有人能告訴我它是哪一個嗎?
唯一讓我想到的是我有一件事我沒有做,並且需要在IIS管理器中做。我也看到了連接字符串,但是由於連接字符串在應用程序中,所以我們不確定這是什麼。也許我應該給應用程序某種授權與數據庫服務器通信,即使它們在同一臺計算機上?
感謝您分享您的解決方案。它幫助了我。我所要做的只是將BUILTIN \ IIS_IUSRS添加到具有讀/寫權限的Db登錄名中。 – nam