通过本地IIS7的别名连接到SQL Server时出错

时间:2013-05-02 15:43:54

标签: asp.net .net sql-server entity-framework connection-string

只是想知道是否有人之前遇到过这种情况。有几个开发人员看这个,我们都不能弄明白。

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

  

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

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

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

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

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

任何建议都将受到赞赏。

1 个答案:

答案 0 :(得分:3)

检查this,具体来说:

SQL Server别名使用的先决条件

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

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

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