.net - IIS 无法连接到 LocalDB

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

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

System.Data.SqlClient.SqlException (0x80131904): 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: 50 - Local Database Runtime error occurred. Cannot get a local application data path. Most probably a user profile is not loaded. If LocalDB is executed under IIS, make sure that profile loading is enabled for the current user.

我的连接字符串是:

"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 权限有关吗?

最佳答案

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

我如何让它工作的是:

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

或者

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

关于.net - IIS 无法连接到 LocalDB,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/69066639/

相关文章:

sql - 如何插入只有一个 IDENTITY 列的表?

c# - 全局缓存对象不断添加项目

c# - 过滤 ObservableCollection

c# - Exchange Web 服务 API : get mail attachments

c# - 将 session 状态持久化到数据库表

sql-server - 如何从脚本创建 SQL Server 2008 数据库

c# - 选择字符串的特定部分 C#

sql - C# SQL INSERT INTO 查询并显示结果

asp.net-mvc - asp.net mvc windows 身份验证 - 用户以不同用户身份登录

internet-explorer - 使用 https URL 和 http :443 URLs? 时出现 IE 混合内容警告