c# - SQL Server : cannot connect from local website (SQL Network Interfaces, 错误:26 - 定位指定的服务器/实例时出错)

标签 c# .net sql-server-2008 visual-studio-2008 windows-7

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

A network-related or instance-specific error occurred while establishing a connection to SQL Server. The server was not found or was not accessible. Verify that the instance name is correct and that SQL Server is configured to allow remote connections. (provider: SQL Network Interfaces, error: 26 - Error Locating Server/Instance Specified)

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

Data Source=*MY_MACHINE*\SQLEXPRESS;Initial Catalog=*MY_DB*;Integrated Security=True

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

Data Source=.\SQLEXPRESS;Initial Catalog=*MY_DB*;Integrated Security=True

Data Source=localhost\SQLEXPRESS;Initial Catalog=*MY_DB*;Integrated Security=True

都没有结果。

谢谢

最佳答案

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

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

您可以将连接字符串更改为不使用 Integrated Security,但为其提供用户名和密码

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

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

关于c# - SQL Server : cannot connect from local website (SQL Network Interfaces, 错误:26 - 定位指定的服务器/实例时出错),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14243595/

相关文章:

c# - 如何填充 GridView 异步

c# - 在 PRISM 4 中导航到新 View 时如何改进传递对象

c# - 如何简化 Silverlight 4 中的 WCF 调用

c# - 我们如何在 MVVM 模式中为 WPF 和 SL 实现更改通知传播?

sql - 如何每天自动运行一个存储过程

sql-server-2008 - datetime2 是否有类似 isdate() 的函数?

c# - 充分利用具有 n(3) 层架构的 MVC Owin 标识

c# - 用 using(...) { } 语句包装 Application.Run(new Form()) 是否安全?

c# - 使形状最顶层

sql-server-2008 - 将列列表传递给存储过程