我花了一整天的时间试图解决这个问题。 我有一个新的 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>
标签中。
该连接字符串不会导致该错误。 尝试在应用程序代码中对连接字符串进行硬编码以进行故障排除。
事实证明,未从配置文件中检索连接字符串。 我不得不重用另一个提供数据库访问的项目。 它期望连接字符串位于应用设置部分中。