我有一个应该从客户端计算机启动的应用程序,但是每次启动它时,它都会显示一条错误消息“无法与数据库通信”。
顺便说一下,这是一个 .Net 应用程序,数据库是 SQLExpress2008R2。应用程序本身存储在应用服务器(Windows Server 2008)中。当我从服务器启动应用程序时,它可以正常工作。但是当我从客户端计算机执行此操作时,它显示了错误。
我设法通过禁用应用服务器上的 Windows 防火墙(针对公共)解决了该问题。禁用后,一切都正常工作,但显然我的客户端不喜欢该选项。那么我该如何允许应用程序绕过 Windows Server 2008 防火墙呢?
我做了各种各样的事情,比如为端口 1433 添加规则、为 SQLExpress 设置 TCP/IP 以及禁用动态端口等,但都没有用。
答案1
使用 仔细检查 SQL 服务器正在监听的套接字是否确实是 0.0.0.0:1433 netstat -an
。如果不是,请检查 SQL 服务器的网络配置。如果是,请检查允许流量到 1433/tcp 的入站规则是否正确定义和启用。这应该涵盖两个最可能的原因。