可能问题一:
确切的说是在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 就会出错了啊,好在微软可以让我们自己指定账户,这样我们就可以新建一个账户,给他指定要权限,然后再给应用程序池使用,问题引刃而解了
号召大家不要再盲目转别人的帖子了,因为各人碰到的问题不一样,转帖的时候尽量总结下,加点自己的东西,既有助于自己,又能让别人更容易的搜索到有用的东西
可能问题二:
1、程序-----SQL Server2008---配置工具——SQL Server配置管理器 IP地址填入你自己的IP,TCP端口填写为1433 植入SQLEXPRESS的协议下面那个JAY的协议根据电脑不同可能会不同,点击按照如上同样的设置 2、把如下的都启动起来,启动模式改为自动启动 3、打开“MS SQL Server Management Studio”,选择“Windows身份验证”登录 右键---方面,按照如下设置,把红框里面的都设置为True 4、 在Windows 防火墙中为“SQL Server 2005”创建例外 1.在 Windows 防火墙设置界面中,选择“ 例外” 选项卡,然后单击“添加程序” 2.在“添加程序窗口”中单击“浏览” 3.然后找到“C:\ProgramFiles\Microsoft Files\Microsoft SQL Server\ MSSQL.1 \MSSQL\Binn\sqlservr.exe”, 单击“确定”返回 注意 : 路径可能会根据 SQL Server 2005 安装不同而不同。 MSSQL.1 是占位符,对应数据库实例ID。 4.对每个需要打开远程访问的SQL Server 2005 实例,重复步骤 1 至 3。 在Windows 防火墙中为“SQLBrowser”创建例外 1.在 Windows 防火墙设置界面中,选择“ 例外” 选项卡,然后单击“添加程序” 2.在“添加程序窗口”中单击“浏览” 3.然后找到“C:\ProgramFiles\Microsoft Files\Microsoft SQL Server\90\Shared\sqlbrowser.exe”, 单击“确定”返回 注意 : 路径可能会根据 SQL Server 2005 安装不同而不同。 5、重启服务