確切的說是在IIS 7.5中有這問題
就是在visual studio中都用的好好的,但是加載到IIS上的時候竟然報錯“
在與 SQL Server 建立連接時出現與網絡相關的或特定於實例的錯誤。未找到或無法訪問服務器。請驗證實例名稱是否正確並且 SQL Server 已配置為允許遠程連接。 (provider: Named Pipes Provider, error: 40 - 無法打開到 SQL Server 的連接)
說明: 執行當前 Web 請求期間,出現未經處理的異常。請檢查堆棧跟蹤信息,以了解有關該錯誤以及代碼中導致錯誤的出處的詳細信息。
異常詳細信息: System.Data.SqlClient.SqlException: 在與 SQL Server 建立連接時出現與網絡相關的或特定於實例的錯誤。未找到或無法訪問服務器。請驗證實例名稱是否正確並且 SQL Server 已配置為允許遠程連接。 (provider: Named Pipes Provider, error: 40 - 無法打開到 SQL Server 的連接)
源錯誤:
異常詳細信息: System.Data.SqlClient.SqlException: 在與 SQL Server 建立連接時出現與網絡相關的或特定於實例的錯誤。未找到或無法訪問服務器。請驗證實例名稱是否正確並且 SQL Server 已配置為允許遠程連接。 (provider: Named Pipes Provider, error: 40 - 無法打開到 SQL Server 的連接)
源錯誤:
行 497: catch (System.Data.SqlClient.SqlException e)
行 498: {
行 499: throw e;
行 500: }
行 501: |
源文件: D:\MyClassLib\DBUtility\DbHelperSQLP.cs 行: 499
堆棧跟蹤:
堆棧跟蹤:
[SqlException (0x80131904): 在與 SQL Server 建立連接時出現與網絡相關的或特定於實例的錯誤。未找到或無法訪問服務器。請驗證實例名稱是否正確並且 SQL Server 已配置為允許遠程連接。 (provider: Named Pipes Provider, error: 40 - 無法打開到 SQL Server 的連接)] DBUtility.DbHelperSQLP.ExecuteReader(String strSQL) in D:\MyClassLib\DBUtility\DbHelperSQLP.cs:499 SfxtHelper.GetCurrentYis(String start, String end) in d:\SunOA\Web\App_Code\SfxtHelper.cs:406 shouji.Page_Load(Object sender, EventArgs e) in d:\SunOA\Web\fyt\shouji.aspx.cs:41 System.Web.Util.CalliHelper.EventArgFunctionCaller(IntPtr fp, Object o, Object t, EventArgs e) +14 System.Web.Util.CalliEventHandlerDelegateProxy.Callback(Object sender, EventArgs e) +35 System.Web.UI.Control.OnLoad(EventArgs e) +91 System.Web.UI.Control.LoadRecursive() +74 System.Web.UI.Page.ProcessRequestMain(Boolean includeStagesBeforeAsyncPoint, Boolean includeStagesAfterAsyncPoint) +2207 |
版本信息: Microsoft .NET Framework 版本:4.0.30319; ASP.NET 版本:4.0.30319.272
”
網上動不動,網絡訪問啊開啟遠程連接,千篇一律的復制,也不看看具體情況,浪費資源還害的別人增加了搜索難度。
本來在visual studio就可以正常使用,說明這網絡肯定不存在問題,也不存在什么遠程連接的問題
很明顯 這就是iis的設置問題。
作為服務器,安全是很重要的,微軟在iis7.5上做了些改動。
在iis7.5以前,iis的默認賬戶是NetworkServices,從iis7.5開始使用當前程序(網站)的應用程序池名稱作為默認賬戶(在系統盤下的“用戶”文件下將會看到這些特殊的用戶名)
而這些賬戶的權限是很小的,小到連訪問網絡的權限都沒有,所以訪問sql 就會出錯了啊,好在微軟可以讓我們自己指定賬戶,這樣我們就可以新建一個賬戶,給他指定要權限,然后再給應用程序池使用,問題引刃而解了
號召大家不要再盲目轉別人的帖子了,因為各人碰到的問題不一樣,轉帖的時候盡量總結下,加點自己的東西,既有助於自己,又能讓別人更容易的搜索到有用的東西