2

我正在使用 Visual Studio 2008 和 Sql Server 2008 Express 开发一个网站。我开始开发,所以代码是正确的,因为我的一些同事使用相同的工具正确运行它。问题是:一旦我运行该网站,我就无法使其与数据库通信。他们都在我的本地机器上。抛出的错误是:

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

奇怪的是,我可以通过数据资源管理器面板通过 Visual Studio 本身导航数据库。通过这样做,我从属性中读取了连接字符串,它看起来像

数据源=*MY_MACHINE*\SQLEXPRESS;初始目录=*MY_DB*;集成安全=True

我也尝试了一些改变,比如

数据源=.\SQLEXPRESS;初始目录=*MY_DB*;集成安全=True

数据源=localhost\SQLEXPRESS;初始目录=*MY_DB*;集成安全=True

两者都没有结果。

谢谢

4

1 回答 1

1

问题是 ASP.NET 工作进程没有访问数据库的权限。

有很多方法可以解决这个问题,但最简单的方法是授予本地组每个人对数据库的权限。然后你应该能够连接。

或者

您可以将连接字符串更改为不使用集成安全性,但给它一个用户名和密码

您还应该在事件日志中看到适当的错误消息(说不允许某某用户访问数据库),然后您可以只授予该用户权限。

当您以自己的身份奔跑时,您就是以自己的身份进行连接,并且您拥有权利。当 IIs 运行时,它作为工作进程运行,并且该用户无法连接。

于 2013-01-09T18:23:47.240 回答