0

我已经阅读了关于堆栈溢出和 MSDN 的其他类似问题,但仍然找不到这个问题的答案。

我的开发机器正在运行 VS2010SP1 和 IIS7。IIS7 是在 .Net 框架之后安装的,所以我不得不手动配置网站。我将应用程序部署到本地 IIS,而不是使用 Casinni。

环境:

  • Win7 64 位(开发机器)上的 Visual Studio 2010
  • IIS 在 Win7 64 位(开发机器)上运行
  • 在 Win2008(服务器)上运行的 SQL Server 2008

在 Visual Studio 中网站的选项中,我选择使用 IIS 并单击创建虚拟目录,它可以工作(即它成功创建了目录)。

但是当我运行该应用程序时,我收到一条 SQL 连接错误消息:

与 SQL Server 建立连接时发生与网络相关或特定于实例的错误。服务器未找到或无法访问。验证实例名称是否正确以及 SQL Server 是否配置为允许远程连接。

SQL Server 配置为允许远程连接,我可以使用相同的凭据从开发机器连接到 Management Studio 中的 SQL Server(当前是 sa 帐户,是的,我知道这很糟糕,以后会更改它,这仅用于开发目的)。

为了以防万一,我尝试将machine.config条目的文件更改LocalSqlServer为指向服务器,但这并没有帮助,即使服务器是远程的而不是本地的。

我还尝试将其添加到 web.config:

<remove name="LocalSqlServer" />
<add name="LocalSqlServer" 
     connectionString="Data Source=esdc01;Initial Catalog=ECS;Persist Security Info=True;User ID=sa;Password=******;MultipleActiveResultSets=True;Network Library=dbnmpntw;"
     providerName="System.Data.SqlClient" />

中的连接字符串web.config是正确的。

如果我在 VS2010 中进入网站的属性并将其更改回“使用 Visual Studio 开发服务器”,那么应用程序工作正常并且它确实连接到 SQL Server。

因此,当我使用 IIS 时,似乎会访问web.configNOR 以machine.config获取它们的连接字符串......那么 IIS 在哪里寻找连接字符串?我很困惑!

在服务器上,已启用命名管道和 TCP/IP。

4

1 回答 1

0

您说服务器上启用了命名管道和 TCP/IP。

尝试删除“Network Library=dbnmpntw”元素。如果这不起作用,请尝试将其更改为“Network Library=dbmssocn”并查看它是否会使用 TCP/IP 进行连接。

于 2012-05-06T14:03:00.763 回答