C# SqlException:用户登录失败'';。在IIS 8中的ASP.NET CORE 1.0.1应用程序上

C# SqlException:用户登录失败'';。在IIS 8中的ASP.NET CORE 1.0.1应用程序上,c#,asp.net,iis,.net-core,C#,Asp.net,Iis,.net Core,我正在IIS 8上的Windows 2012 R2环境中设置ASP.NET CORE 1.0.1。应用程序连接到SQL数据库,并且在application.json文件中有一个连接字符串(信息已更改): 在IIS中,我已经设置了应用程序,并且应用程序池已设置为作为特定用户运行(例如company\sqluser)。我已验证company\sqluser具有对数据库的读/写访问权限。应用程序池的高级设置如下所示: .NET CLR Version: No Managed Code Enable 3

我正在IIS 8上的Windows 2012 R2环境中设置ASP.NET CORE 1.0.1。应用程序连接到SQL数据库,并且在application.json文件中有一个连接字符串(信息已更改):

在IIS中,我已经设置了应用程序,并且应用程序池已设置为作为特定用户运行(例如company\sqluser)。我已验证company\sqluser具有对数据库的读/写访问权限。应用程序池的高级设置如下所示:

.NET CLR Version: No Managed Code
Enable 32-bit Application: False
Managed Pipeline Mode: Integrated
Identity: company\sqluser
运行应用程序时,我会收到以下SQL错误消息:

System.Data.SqlClient.SqlException: Login failed for user ''.
我希望应用程序以company\sqluser的身份连接到数据库,但由于某些原因,它似乎无法这样做。我还尝试将应用程序池作为我的个人用户帐户运行,该帐户对SQL DB具有管理员权限,但仍然会出现错误

我是否缺少某个配置

编辑:我的web.config文件如下:

<system.web>
    <authentication mode="Windows"/>
 </system.web>
  <system.webServer>
    <handlers>
      <add name="aspNetCore" path="*" verb="*" modules="AspNetCoreModule" resourceType="Unspecified" />
    </handlers>
    <aspNetCore processPath="dotnet" arguments=".\CompanyApp.dll" stdoutLogEnabled="false" stdoutLogFile=".\logs\stdout" forwardWindowsAuthToken="true">
        <environmentVariables>
            <environmentVariable name="ASPNETCORE_ENVIRONMENT" value="Development" />
        </environmentVariables>
    </aspNetCore>
      <rewrite>
          <rules>
              <rule name="HTTP to HTTPS" enabled="true" patternSyntax="Wildcard" stopProcessing="true">
              <match url="*" /><conditions><add input="{HTTPS}" pattern="off" />
              </conditions><action type="Redirect" url="https://{HTTP_HOST}{REQUEST_URI}" redirectType="Found" />
              </rule>
          </rules>
      </rewrite>
  </system.webServer>
</configuration>

尝试连接字符串中的
integratedsecurity=true
而不是
Trusted\u Connection=true

integratedsecurity=true
是System.Data.SqlClient的语法,而
Trusted_Connection=true
是ODBC的语法


请参阅和

您可以尝试设置Windows身份验证。在IIS中,确保已在上添加并启用windows身份验证模块

此外,需要确保应用程序池在域帐户而不是本地帐户下运行

在ASP.net中,我们通常这样做:

<system.web>
    <authentication mode="Windows"/>
 </system.web>


由于我不是应用程序的开发人员,我没有意识到开发人员在代码中重写了连接字符串,而不是使用appsettings.json文件。缺少的是以下内容:

Trusted_Connection=True;

一旦我删除了重写连接字符串的代码,并确保在appsettings中将Trusted_connection设置为True,应用程序就工作了。

这也不起作用。仍然收到相同的错误。根据您的描述,我建议您可以尝试按照下面的说明了解如何使用AD domain whth IIS应用程序池访问sql数据库。您好,Gauravsa,我已尝试在web.config文件中添加身份验证模式为Windows,并禁用匿名身份验证。那也没用。
Trusted_Connection=True;