SQL Server中的错误40

时间:2012-06-20 10:44:35

标签: asp.net sql-server sql-server-2008-r2

我在我的服务器上安装了Asp.net网站,在SQL Server 2008 R2中安装了我的网站数据库。我的网站包含包含ActiveX组件的页面。当我在服务器上运行我的网站时,ActiveX组件正常工作,但是当我从客户端运行网站时出现问题。

不包含ActiveX组件的页面正常工作,我可以从数据库中获取和插入数据。在包含ActiveX组件的页面中,它为我提供了SQL Server错误号40,它无法打开连接。

任何人都可以帮我解决这个问题吗?

1 个答案:

答案 0 :(得分:0)

正如Steve B在他的评论中暗示的那样,问题在于ActiveX组件直接调用数据库。应用程序中的连接字符串指定从Web服务器到数据库服务器的连接。这些连接起作用,因为您的防火墙设置允许从该Web服务器到数据库服务器的入站连接。在ActiveX控件中设置连接以直接连接到数据库时,您将遇到连接失败,因为防火墙阻止了运行ActiveX组件的客户端的入站连接。修复是重新设计您的应用程序,以便生活在客户端计算机上的ActiveX组件不再直接对数据库进行调用;利用网络服务或其他类似的东西。如果客户端都是域的内部(也就是这是一个私有应用程序,永远不会面向公众),很可能防火墙未正确配置为允许内部连接到数据库服务器。