我花了一整天努力解决这个问题。 我有一个新的Web服务,在同一解决方案中包含作为项目引用时工作正常。但现在我需要将它发布到我的本地IIS,以便其他人可以测试它。我已将正确的应用程序池应用于该站点。应用程序池设置为使用Intergrated管道并具有正确的活动目录标识。
配置文件中的连接字符串具有" integrated security = True"。
当webservice设置连接字符串时,它没有凭据,并且在打开连接时出现以下异常: "用户登录失败''。原因:尝试使用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>
&#13;
答案 0 :(得分:0)
尝试将此行添加到您的web.config:
<authentication mode="Windows"/>
将其添加到您的<System.Web>
标记中。
答案 1 :(得分:0)
该连接字符串不会导致该错误。尝试对应用程序代码中的连接字符串进行硬编码以进行故障排除。
答案 2 :(得分:0)
事实证明,连接字符串未从配置文件中检索到。我不得不重用另一个提供数据库访问的项目。它期待连接字符串位于应用程序设置部分。