3

只是想知道是否有人以前遇到过这种情况。有几个开发人员看过这个,但我们都无法弄清楚。

我有一个使用 EF4 通过别名连接到 Sql Server 数据库的 ASP.NET Web 窗体应用程序。别名设置为指向我的机器名称(不是“.”或“本地”)。当我用 VS2012 运行它时,它工作正常。如果我将它部署到我的本地 IIS7 实例并尝试在浏览器中将其拉起,我会收到错误消息:

建立与 SQL Server 的连接时发生与网络相关或特定于实例的错误。服务器未找到或无法访问。验证实例名称是否正确以及 SQL Server 是否配置为允许远程连接。(提供者:命名管道提供者,错误:40 - 无法打开与 SQL Server 的连接)

我的连接字符串如下所示:

Data Source=aliasName;Initial Catalog=databaseName;Integrated Security=True;MultipleActiveResultSets=True

如果我更改连接字符串以使数据源是我的机器名而不是别名,则它在 IIS7 中可以正常工作。因此,问题似乎与别名有关,并且仅在用完 IIS7 时才出现。

作为一种解决方法,我正在使用本地构建配置文件来部署一个不使用本地别名的不同 web.config,但我真的很想弄清楚它为什么不起作用。

任何意见,将不胜感激。

4

1 回答 1

4

检查这个,特别是:

SQL Server 别名使用的先决条件

  1. 您必须愿意让您的客户端通过网络协议连接到实例。当客户端和实例位于同一系统上时,无法使用可用的共享内存连接。我为我的别名使用 TCP/IP 连接。

  2. 在托管 SQL Server 实例的系统上,您必须运行 SQL Server Browser 服务(通常将“启动模式”设置为“自动”)。

  3. 在 64 位系统上,如果您同时拥有 32 位和 64 位客户端,则需要为 32 位和 64 位客户端创建一个别名。

于 2013-09-23T23:51:46.270 回答