【问题标题】:Connect to SQL Server from IIS (ASP.Net Core)从 IIS (ASP.Net Core) 连接到 SQL Server
【发布时间】:2021-01-11 15:01:12
【问题描述】:

我花了几个小时尝试多种组合,将托管在 IIS 服务器上的我的 asp.net 核心站点连接到远程 SQL Server,只使用 SQL 用户和密码而不退出。这是我在 appsettings.json 中的连接字符串:

 "ConnectionStrings": {
    "Booking": "Server=SQLServerName;Database=Booking;User Id=XXX;Password=XXX;"
  }
  • 我已尝试将 Integrated security = false 和 Trusted connection = false 设置为
  • 我将应用程序池中的属性 Identity 更改为 LocalSystem,尽管_我已经尝试了所有选项。
  • 我可以毫无问题地从我的计算机连接到 SQLManager 的数据库。
  • 在我的事件查看器中,我看到下一个错误:Microsoft.Data.SqlClient.SqlException (0x80131904): Login failed for user 'DOMAIN\NAMEOFTHESERVER$'。
  • 数据库服务器中的 SQL Server 2016,网络服务器中的 windows server 2016。
  • 我使用windows认证进行用户认证,但是我需要使用简单的用户和密码来连接db。

知道我做错了什么吗?

谢谢

【问题讨论】:

  • 正确!!!!我已将连接字符串添加到 appsettings.development.json 文件中,现在它可以工作了。非常感谢

标签: asp.net-core iis


【解决方案1】:

SqlException (0x80131904): 用户 'DOMAIN\NAMEOFTHESERVER$' 登录失败。

这意味着你显示的连接字符串没有被使用,因为这个用户名属于NT AUTHORITY\NETWORK SERVICE。所以使用了另一个配置文件,例如appsettings.development.json,它使用Integrated Security=True,使用应用程序池的标识。

将 web.config 中的环境更改为生产环境,因此不使用 appsettings.development.json

<system.webServer>
    <aspNetCore ...>
      <environmentVariables>
        <environmentVariable name="ASPNETCORE_ENVIRONMENT" value="Production" />

【讨论】:

    【解决方案2】:

    如果您为特定用户设置了 sql db 的权限,您可能会错过在 IIS 中设置的权限。希望能帮到你。

    【讨论】:

    • 我对用户使用windows身份验证,但是到数据库的连接必须使用这个用户和密码,没有别的。
    • 即使您对 SQL Server 使用 Windows 身份验证,它也不相关。但我知道这不是你的问题
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2019-05-12
    • 2018-07-26
    • 2020-10-01
    • 1970-01-01
    • 1970-01-01
    • 2017-01-27
    • 1970-01-01
    相关资源
    最近更新 更多