【问题标题】:IIS Express not able to connect to LocalDBIIS Express 无法连接到 LocalDB
【发布时间】:2021-09-05 19:41:23
【问题描述】:

我有一个使用 IIS Express 和 LocalDB 的示例 .NET Core 2.1 应用程序,但每当我运行 WebAPI 应用程序时,我都会收到以下错误:

System.Data.SqlClient.SqlException (0x80131904):建立与 SQL Server 的连接时发生与网络相关或特定于实例的错误。服务器未找到或无法访问。验证实例名称是否正确以及 SQL Server 是否配置为允许远程连接。 (提供者:SQL 网络接口,错误:50 - 发生本地数据库运行时错误。无法获取本地应用程序数据路径。很可能未加载用户配置文件。如果在 IIS 下执行 LocalDB,请确保为当前用户。

我的连接字符串是:

"ConnectionStrings": {
     "DefaultConnection": "Data Source=(localdb)\\MSSQLLocalDB,1433;AttachDbFilename=C:\\temp\\gitprojects\\TokenAuthAPI\\TokenAuthAPI\\TokenAuth.mdf;Integrated Security=True"
}

我最初没有.mdf路径或1433,但我在网上检查后添加了这些,但仍然是同样的错误。

在 SQL Server 对象资源管理器下的 Visual Studio 中,我创建了数据库并在运行时查看它 命令(在命令提示符中) SQLLocalDb info MSSQLLocalDB 我看到它正在运行。

如果我在 SQL Server 对象资源管理器中右键单击并检查数据库的属性并使用该连接字符串,我会得到同样的错误:

Data Source=(localdb)\MSSQLLocalDB;Initial Catalog=TokenAuth;Integrated Security=True;Connect Timeout=30;Encrypt=False;TrustServerCertificate=False;ApplicationIntent=ReadWrite;MultiSubnetFailover=False

这与 IIS 权限有关吗?

【问题讨论】:

  • 尝试使用服务器而不是数据源:Server=MyPC\\SQLEXPRESS;Initial Catalog=TokenAuth;Integrated Security=True; 另外尝试两个 `\` 而不是一个。最后,检查服务器名称是否正确。通常 IIS Express 的服务器名称为 ' \\SQLEPXRESS '
  • 问题基本上是 LocalDB 需要在人类 Windows 用户的上下文中运行,因为它将数据存储在他们的用户配置文件结构中。有一些解决方法,例如 LocalDB 的共享实例,但使用 SQL Server Express 或更高版本几乎总是更好。有关详细信息,请参阅this previous SO answer
  • @JasonPan 是的,因为我可以使用相同的服务器和用户/密码通过 SSMS 进行连接。我在项目中有 EF 迁移并且运行良好,他们能够对数据库进行更改。
  • 这里写的比较详细,推荐也是使用SQL Server Express,而不是LocalDB。 stackoverflow.com/questions/36703854/cannot-connect-to-localdb 我相信你可以让它工作,但它可能是使用 SQL Express 的更快途径

标签: .net sql-server iis asp.net-web-api


【解决方案1】:

您必须添加一个池 只要 AppPool 名称确实存在,现在就应该创建登录。

我是如何让它工作的:

  1. 在 SQL Server Management Studio 中,查找安全文件夹(与数据库、服务器对象等文件夹处于同一级别的安全文件夹...而不是每个单独数据库中的安全文件夹)
  2. 右键单击登录并选择“新建登录”
  3. 在登录名字段中,输入 IIS APPPOOL\YourAppPoolName - 不要点击搜索
  4. 填写您喜欢的任何其他值(即身份验证类型、默认数据库等)
  5. 点击确定

或者

CREATE LOGIN [IIS APPPOOL\MyAppPool] FROM WINDOWS;
CREATE USER MyAppPoolUser FOR LOGIN [IIS APPPOOL\MyAppPool];

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-08-10
    • 2022-01-20
    • 1970-01-01
    • 1970-01-01
    • 2017-02-24
    相关资源
    最近更新 更多