从IIS上承载的应用程序访问数据库

eqoofvh9  于 2022-11-24  发布在  其他
关注(0)|答案(1)|浏览(139)

我得到的错误是:

无法打开登录所请求的数据库“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;

我相信我已经尝试了一切:

  1. 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
rur96b6h

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

  • 除此之外,请随时在评论中寻求帮助,我可能会记得这些东西,即使在一两年后。(字面上花了7天在这个问题上)*

相关问题