只是想知道是否有人之前遇到过这种情况。有几个开发人员看这个,我们都不能弄明白。
我有一个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,但我真的想弄清楚它为什么不起作用。
任何建议都将受到赞赏。
答案 0 :(得分:3)
检查this,具体来说:
SQL Server别名使用的先决条件
您必须愿意让您的客户通过网络协议连接到该实例。当客户端和实例位于同一系统上时,无法使用可用的共享内存连接。我为别名使用TCP / IP连接。
在托管SQL Server实例的系统上,您必须运行SQL Server Browser服务(通常将“启动模式”设置为“自动”)。
在64位系统上,如果您同时拥有32位和64位客户端,则需要为BOTH 32位和64位客户端创建别名。