IIS部署应用程序连接 LocalDB 数据库

阿里云国内75折 回扣 微信号:monov8
阿里云国际,腾讯云国际,低至75折。AWS 93折 免费开户实名账号 代冲值 优惠多多 微信号:monov8 飞机:@monov6

使用.net core框架创建ASP.NET Core API应用程序利用Entity Framework core实体进行MS LocalDB数据库进行连接操作增/删/改/查运行。

问题

在Visual Studio 2022 开发工具可以正常运行 Web API 应用程序连接 LocalDB 数据库进行相关操作但部署到IIS服务器里就出现Login failed for user 'IIS APPPOOL\sqdy'. 错误提示如下

解决方案

IIS配置的应用程序池标识的内置账户ApplicationPoolIdentity没有数据库LocaDB访问管理权限需要为其在数据库创建登录用户和授权如下SQL

--创建 [IIS APPPOOL\sqdy]登录用户
CREATE USER [IIS APPPOOL\sqdy]
    FOR LOGIN [IIS APPPOOL\sqdy]
    WITH DEFAULT_SCHEMA = dbo;
Go

--为[IIS APPPOOL\sqdy]用户添加'db_owner'角色
EXEC sp_addrolemember 'db_owner', 'IIS APPPOOL\sqdy';
GO

若出现“Local Database Runtime error occurred. 无法获取本地应用程序数据路径。很可能是因为未加载用户配置文件。如果在 IIS 下执行 LocalDB请确保为当前用户启用配置文件加载。”错误提示则将IIS>>应用程序池>>高级设置>>加载用户配置文件 设定为“True”。

可通过以下命令来操作SQLLocalDB数据库

sqllocaldb.exe [versions | v ]查看当前安装LocalDB数据库版本

sqllocaldb.exe [info | i ]查询当前所有数据库实例

sqllocaldb.exe [create | c ] "[实例名]" 创建新实例

sqllocaldb.exe [delete | d ] "[实例名]"删除实例

sqllocaldb.exe [start | s ] "[实例名]" 启动实例 

sqllocaldb.exe [stop | p ] "[实例名]" 停止实例

sqllocaldb.exe [help | -? ] 显示 sqllocaldb.exe 命令的帮助信息

sqllocaldb.exe [share | h] "[实例名]" "[共享私有实例名]" 共享实例使用指定的共享名称共享指定的 LocalDB 私有实例

sqllocaldb.exe [unshare | u] "[共享私有实例名]" 取消共享实例停止共享指定的 LocalDB共享实例

-----------------------------------------------------------------------------------

创建LocalDB示例

-- 创建实例

sqllocaldb.exe create "LocalDB_TT"

-- 共享实例

sqllocaldb.exe share "LocalDB_TT" \"LocalDB_TT_Share"

-- 启动实例

sqllocaldb.exe start LocalDB_TT

-- 停止实例

sqllocaldb.exe stop LocalDB_TT

-- 取消共享实例

sqllocaldb.exe unshare LocalDB_TT_Share

提供给IIS服务器访问建议使用LocalDB共享数据。

共享实例连接字符串

Data Source=(LocalDb)\\.\\LocalDB_TT_Share;AttachDbFilename=C:\\Users\\zhidong\\AppData\\Local\\Microsoft\\Microsoft SQL Server Local DB\\Instances\\LocalDB_TT\\TT.mdf;Integrated Security=true;Trusted_Connection=True;MultipleActiveResultSets=true

注若要连接到某一 LocalDB 共享实例请将 \.\反斜杠 + 句点 + 反斜杠添加到连接字符串以便引用为共享实例保留的命名空间。

LocalDb 数据库连接字符串

Data Source=(LocalDb)\\LocalDB_TT;AttachDbFilename=C:\\Users\\zhidong\\AppData\\Local\\Microsoft\\Microsoft SQL Server Local DB\\Instances\\LocalDB_TT\\TT.mdf;Integrated Security=true;Trusted_Connection=True;MultipleActiveResultSets=true

阿里云国内75折 回扣 微信号:monov8
阿里云国际,腾讯云国际,低至75折。AWS 93折 免费开户实名账号 代冲值 优惠多多 微信号:monov8 飞机:@monov6
标签: 数据库