![IIS 看不到数据库服务器,但 Visual Studio 开发服务器却可以看到!为什么?](https://linux22.com/image/524729/IIS%20%E7%9C%8B%E4%B8%8D%E5%88%B0%E6%95%B0%E6%8D%AE%E5%BA%93%E6%9C%8D%E5%8A%A1%E5%99%A8%EF%BC%8C%E4%BD%86%20Visual%20Studio%20%E5%BC%80%E5%8F%91%E6%9C%8D%E5%8A%A1%E5%99%A8%E5%8D%B4%E5%8F%AF%E4%BB%A5%E7%9C%8B%E5%88%B0%EF%BC%81%E4%B8%BA%E4%BB%80%E4%B9%88%EF%BC%9F.png)
我正在使用在 Windows NT 上运行的 SQL Server 6.5 的 Net 3.5 Web 服务。再一次,不要问我为什么 :)
当我在本地 IIS 5.0 上部署 webservice 时出现问题,我在两种情况下都使用完全相同的连接字符串。我甚至在从 IIS 运行 webservice 和从 Visual Studio 运行 webservice 时在断点处捕获了字符串,发现它们是相同的!下一行代码是
connection.Open();
并且在该行代码中断,发生异常,但仅限于 IIS 情况。连接字符串包含用户名和密码,但没有集成安全密钥。我在 IIS 上使用部署的 WS 时收到的错误是服务器不存在或访问被拒绝。我检查了 sql 服务器分析器(是的,sql 6.5 有名为 SQL trace: 的分析器)以查看它是否与凭据有关,但它甚至没有启动 sql 服务器。
我觉得是某种网络问题,或者我不知道。这很奇怪。同一台计算机看不到同一台服务器。唯一的区别是,在一种情况下 WebService 在 IIS 上运行,而在另一种情况下在 Visual Studio 上运行。我的管理员不知道。
我表示怀疑,但是,有什么想法吗?:D
ps 我在 stackoverflow 上发布了这个问题,但后来意识到也许这是更合适的地方。
答案1
找到解决方案!
在 SQL 6.5 中的 SQL 客户端配置工具中将默认协议设置为 TCPIP 是一个技巧。它最初是命名管道。
连接字符串还需要此键网络库 = DMBSSOCN
怀疑是否有人会需要这个但也许有人:)