IIS 未将凭据传递给 Web 服务以进行数据库连接



我花了一整天的时间试图解决这个问题。 我有一个新的 Web 服务,当作为项目参考包含在同一个解决方案中时,它可以正常工作。 但是现在我需要将其发布到我的本地 IIS,以便其他人可以对其进行测试。 我已将正确的应用程序池应用于站点。 应用程序池设置为使用集成管道,并具有正确的活动目录标识。

配置文件中的连接字符串具有"集成安全性=True"。

当 Web 服务设置连接字符串时,它没有凭据,打开连接时出现以下异常:"用户登录失败"。原因:尝试使用 SQL 身份验证登录失败。 服务器配置为仅进行 Windows 身份验证。[客户端: ]">

当我检查数据库服务器属性 -> 安全性 -> 服务器身份验证时,它选中了"SQL Server 和 Windows 身份验证模式"。

我还确认AD帐户也可以访问数据库。

我查看了各种其他帖子,但找不到提供适合我的解决方案的帖子。 我一定错过了一些简单的东西,只是看不到它。

我错过了什么?

这是我的配置文件:

<configuration>
<system.web>
<compilation debug="true" targetFramework="4.6.1" />
<httpRuntime targetFramework="4.5.2" />
<httpModules />
</system.web>
<system.webServer>
<validation validateIntegratedModeConfiguration="false" />
<modules />
</system.webServer>
<connectionStrings>
<add name="CoreServices" connectionString="data source=localhost;initial catalog=CoreServices;integrated security=True;MultipleActiveResultSets=True" providerName="System.Data.SqlClient" />
</connectionStrings>
</configuration>

尝试将此行添加到您的 web.config:

<authentication mode="Windows"/>

将其添加到您的<System.Web>标签中。

该连接字符串不会导致该错误。 尝试在应用程序代码中对连接字符串进行硬编码以进行故障排除。

事实证明,未从配置文件中检索连接字符串。 我不得不重用另一个提供数据库访问的项目。 它期望连接字符串位于应用设置部分中。

相关内容

  • 没有找到相关文章

最新更新