繁体   English   中英

具有模拟功能的WCF服务无法连接到SQL Server,但是同一台计算机上的SSMS将

[英]WCF service with impersonate cannot connect to SQL Server, but SSMS on the same machine will

我有一个问题,我根本无法解决问题。 在底部,有一个WCF服务(.NET 4.0),该服务被配置为模拟有效用户,如下所示:

<system.web>
    <compilation debug="true" targetFramework="4.0" />
    <identity impersonate="true" password="abc123" userName="domain\theuser" />
</system.web>

和一个SQL Server连接字符串,如下所示:

<connectionStrings>
    <add name="MyTest.Service.Properties.Settings.ConnStr"
         connectionString="Data Source=192.168.0.54;Initial Catalog=TheDatabase;Integrated Security=SSPI;" />
</connectionStrings>

我有WCF服务在IIS7下运行,并且在应用程序池中也以相同的用户凭据运行。

如果我尝试使用这些凭据(在SQL Server上将用户设置为有效用户)访问这些凭据,则在SAME计算机上的SSMS中,一切正常,但是只要我尝试使用WCF进行相同的操作服务它给我这个:

System.Data.SqlClient.SqlException(0x80131904):建立与SQL Server的连接时发生与网络相关或特定于实例的错误。 服务器未找到或无法访问。 验证实例名称正确,并且已将SQL Server配置为允许远程连接。 (提供者:命名管道提供程序,错误:40-无法打开与SQL Server的连接)

到底是什么问题? 我在服务器上运行的其他应用程序可以访问其他外部SQL Server数据库而没有任何麻烦。

这很可能是您的连接字符串,因为这不是凭据错误。

如果SQL Server是本地服务器,则可以尝试使用“ datasource =(local)”。

您也可以尝试将实例也添加到数据源中。

如果它是远程的SQL Server,请确保将SQL Server配置为允许远程连接

取自msdn

如果数据库位于远程服务器上,则还必须在Active Directory中配置相关帐户以进行委派。 例如,您必须确保将应用程序的服务帐户标记为“受信任的委派”,并且将最终用户帐户标记为“不敏感”,这意味着它们不能被委派。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM