我得到的错误是:
无法打开登录所请求的数据库“DBNAME”。登录失败。\r\n用户'IIS APPPOOL\DefaultAppPool'登录失败
初始连接字符串如下,在进一步的问题中我将只使用它的一部分。
Data Source=(localdb)\\MSSQLLocalDB;Initial Catalog=DBNAME;Integrated Security=True;Connect Timeout=30;Encrypt=False;TrustServerCertificate=False;ApplicationIntent=ReadWrite;MultiSubnetFailover=False;
我相信我已经尝试了一切:
- IIS上承载的应用程序正在使用“ApplicationPoolIdentity”作为标识。我已尝试将该标识更改为其他标识,但没有效果。只会出现类似的错误,但用户已更改。(尚未尝试使用自定义帐户)
1.尝试使用以下命令sqllocaldb share mssqllocaldb IIS_DB
共享我的localDB示例。重新启动该示例,将连接字符串数据源更改为以下命令(localdb)\\.\\IIS_DB
。
1.简单地尝试使用SQLEXPRESS示例和以下数据源.\\SQLEXPRESS
。
我已经将IIS APPPOOL\\DefaultAppPool
用户添加到所有可能的位置,授予对所有内容的完全访问权限,允许Everyone
访问数据库所在的文件夹。
有一件事我没有尝试过,那就是从头开始重复所有的事情,因为我可能会搞砸一些事情。
IIS: version 10.0.19041.1
SSMS: version 18.12.1
Backend: .NET 6 minimal API + DAPPER
1条答案
按热度按时间rur96b6h1#
谢谢你@莱克斯李,我曾经通过微软的acc登录到我的电脑,因此我从来没有使用过windows的acc。所以无论谁跌倒,请记住,它很容易创建acc,windows可以帮助你。
除此之外,我缺少的正是这个。使用你自己的ACC而不是DefaultAppPool(尽管它应该仍然工作)。
不要忘记检查您的SQL示例是否正在运行:
1.打开cmd并写入
sqllocaldb i
(这应该会显示所有示例)1.以检查示例是否正在运行。(当您打开本地SSMS并连接到示例或通过cmd运行示例时,它会启动):写入
sqllocaldb i instancename
(应该看到它正在运行)-(如果要重新启动它,请写入sqllocaldb stop instancename
,然后写入sqllocaldb start instancename
。