语言吧技术网欢迎您投稿,程序员的世界我懂你!=====>点此登录投搞
当前位置: 首页 >>数据库 >>MSSQL >>MSSQL实战 >>Sql server在另一台服务器,在Visual Studio 中没问题

Sql server在另一台服务器,在Visual Studio 中没问题

2018/7/20 9:05:17 0人评论 3892次 作者:admin

Sql server在另一台服务器,在Visual Studio 中没问题,IIS中 提示“在与 SQL Server 建立连接时出现与网络相关的或特定于实例的错误。。。。”…

可能问题一:

确切的说是在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





在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、重启服务


CopyRight:2007-2018 语言吧 备案ICP:湘ICP备09009000号-4 http://www.yuyanba.com
分享按钮