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

时间:2015-11-27 14:45:27

标签: c# asp.net .net sql-server wcf

我有一个问题,我根本无法解决如何解决问题。在底部有一个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>

我在IIS7和运行时使用相同用户凭据的应用程序池中运行WCF服务。

如果我尝试访问数据库,使用这些凭据(用户在SQL Server上设置为有效用户),在SAME机器上的SSMS中,一切正常,但是只要我尝试同样的事情通过WCF服务,它抛出了我:

  

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

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

2 个答案:

答案 0 :(得分:0)

这可能是你的连接字符串,因为它不是为凭证提供的错误。

如果SQL服务器是本地的,您可以尝试“datasource =(local)”。

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

如果它是远程的SQL服务器,请确保SQL服务器配置为允许远程连接

答案 1 :(得分:0)

取自msdn

  

如果您的数据库位于远程服务器上,则还必须配置   Active Directory中用于委派的相关帐户。例如,你   必须确保您的应用程序的服务帐户被标记为   信任委派,最终用户帐户未标记为   敏感,这意味着他们不能被委派。