我有一个问题,我根本无法解决如何解决问题。在底部有一个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数据库没有任何麻烦。
答案 0 :(得分:0)
这可能是你的连接字符串,因为它不是为凭证提供的错误。
如果SQL服务器是本地的,您可以尝试“datasource =(local)”。
您也可以尝试在实例中添加数据源。
如果它是远程的SQL服务器,请确保SQL服务器配置为允许远程连接
答案 1 :(得分:0)
取自msdn
如果您的数据库位于远程服务器上,则还必须配置 Active Directory中用于委派的相关帐户。例如,你 必须确保您的应用程序的服务帐户被标记为 信任委派,最终用户帐户未标记为 敏感,这意味着他们不能被委派。