我想托管客户机上的ASP.NET 2.0应用程序连接到SQL服务器,安装在域控制器上运行Windows Server 2003的2000实例(我上感谢这不是最佳实践,但它是我不能改变的)。我正在使用SQL Server身份验证,而不是Windows身份验证。连接到SQL Server 2000的一个Windows Server 2003域控制器
在调试过程中,会显示在“连接”尝试在Web应用程序(而不是在运行SQL Server内的任何物体)内的点以下错误:
“在建立连接时出错当连接到SQL Server 2005时,这种失败可能是由于在默认设置下SQL Server不允许远程连接(提供者:命名管道提供程序,错误:40 - 无法打开与SQL Server的连接)“
我已经做了一些研究,并检查了各种东西:
1)我确定连接字符串是正确的 - 事实上,我建立了一个小的Windows应用程序,使用相同的连接信息和连接成功...
2)这仅限于Web应用程序 - 一个Windows应用程序在远程客户端机器上运行使用相同的连接字符串连接就好(请参阅1)。
3)在两台计算机不会阻止连接上的防火墙设置(参见图1)。
4)我可以ping的Windows 2003服务器(参见图1)
5)的SQL Server凭证肯定是要的对象的权限需要
6)如果我(暂时)向Web应用程序在Windows Server 2003上运行它,它会加载并运行正常(在单独的计算机上使用浏览器,或者在我尝试连接的客户端计算机上) - 建议这只是远程连接的问题,并确认连接再次在机器之间,并确认SQL Server用户的必要安全权限。
7)我就可以开始在客户机上的查询分析器,并使用相同的SQL服务器凭据,可以运行在目标数据库就好上查询相同。
难倒。请帮忙!
是否启用SQL中的远程连接?进入企业管理器,然后在左窗格中展开,直到看到有问题的服务器实例。 右键单击,然后进入属性 - >安全 - > SqlServer和Windows应该被选中 – RogueSpear00
是的 - 这是启用的,并且在连接下,远程连接已经启用。虽然检查,我注意到,SQL Server不是Active Directory的一部分。我想知道是否有人知道这可能是一个问题。此外,客户端机器未登录到域 - 但我不认为这将是一个问题,因为从同一客户端机器上的Windows应用程序获得的其他连接。 – Marco
您的远程计算机与服务器在同一子网上吗?你说你可以ping通它 - 但ping不一定能够澄清流量。 – RogueSpear00