我已经在堆栈溢出和MSDN上读过这样的其他问题,但仍无法找到这个问题的答案。
我的开发机器正在运行VS2010SP1和IIS7。 IIS7是在.Net框架之后安装的,所以我不得不手动配置网站。我正在将应用程序部署到IIS而不是使用Casinni。
环境:
在Visual Studio中的网站选项中,我选择使用IIS并单击“创建虚拟目录”,它可以正常工作(即成功创建目录)。
但是当我运行应用程序时,我收到一条SQL连接错误:
发生与网络相关或特定于实例的错误 建立与SQL Server的联系。找不到服务器或 无法访问。验证实例名称是否正确 SQL Server配置为允许远程连接。
SQL Server配置为允许远程连接,我可以使用相同的凭据从管理工作室中的dev机器连接到SQL Server(当前是sa帐户,是的,我知道这很糟糕,稍后会更改它,这只是用于开发目的)。
我尝试将条目machine.config
的{{1}}文件更改为指向服务器以防万一,但即使服务器是远程服务器而不是本地服务器,这也无济于事。
我也尝试将其添加到web.config:
LocalSqlServer
<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" />
中的连接字符串是正确的。
如果我进入VS2010中的网站属性并将其更改回“使用Visual Studio开发服务器”,那么应用程序可以正常运行并且它可以连接到SQL Server。
所以当我使用IIS时,web.config
NOR web.config
的连接字符串被访问...所以IIS在哪里寻找连接字符串?我很困惑!
在服务器上,已启用命名管道和TCP / IP。
答案 0 :(得分:0)
您说在服务器上启用了命名管道和TCP / IP。
尝试删除“Network Library = dbnmpntw”元素。如果这不起作用,请尝试将其更改为“Network Library = dbmssocn”,看看它是否将使用TCP / IP进行连接。