Kiv*_*ivo 6 sql iis asp.net-core-2.0
我有一个在 IIS 7 中托管的 .Net Core 2.0 应用程序。
使用 IIS Express,应用程序工作正常,我能够成功连接到数据库。使用 IIS 我收到此错误:
无法打开
"Books"登录请求的数据库。登录失败。用户 登录失败'DOMAINNAME\PCNAME$'。
我的appsettings.production.json文件中的连接字符串如下所示:
"ConnectionStrings": {
"BooksDatabase": "Server=PCNAME\\SQLEXPRESS;Database=Books;user id=iisAccess;password=iisPassword;Trusted_Connection=True;ConnectRetryCount=0;MultipleActiveResultSets=true"
};
Run Code Online (Sandbox Code Playgroud)
user id=iisAccess;password=iisPassword;我做错了什么,为什么当我将凭据放入 JSON 文件时显示“'DOMAINNAME\PCNAME$' 登录失败” ?
您正在请求 Windows 身份验证:
Trusted_Connection=True
Run Code Online (Sandbox Code Playgroud)
删除这部分连接字符串并再试一次。
错误的原因如下:
IISExpress 在您的登录会话中作为正常进程运行。因此它可以使用您的 Windows 凭据运行。当您的应用程序在 IISExpress 中运行时,它实际上是在您的凭据下运行,当您使用 Windows 身份验证连接到数据库时,SQL Server 将收到您的登录名。
另一方面,完整的 IIS 作为服务在不同的会话和不同的用户帐户下运行。有些应用程序池也发挥作用并在另一个帐户下运行。但最主要的是,这些默认的 IIS 帐户是本地帐户,因此它们对其他计算机没有“可见性”。因此,当您的应用程序尝试连接到 SQL Server 时,SQL“会看到”计算机帐户,该帐户的名称为 DOMAIN\MACHINE$。
| 归档时间: |
|
| 查看次数: |
4899 次 |
| 最近记录: |