确切的说是在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 的连接)
源错误:



行 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 server2008链接服务器 登录超时已过期 sql server连接服务器错误_数据库

sql server2008链接服务器 登录超时已过期 sql server连接服务器错误_SQL_02

而这些账户的权限是很小的,小到连访问网络的权限都没有,所以访问sql 就会出错了啊,好在微软可以让我们自己指定账户,这样我们就可以新建一个账户,给他指定要权限,然后再给应用程序池使用,问题引刃而解了