当 WCF 服务到 TCP/IP 时,底层提供程序在开放实体框架上失败

Posted

技术标签:

【中文标题】当 WCF 服务到 TCP/IP 时,底层提供程序在开放实体框架上失败【英文标题】:The underlying provider failed on Open Entity Framework when WCF Service to TCP/IP 【发布时间】:2012-03-26 23:07:31 【问题描述】:

我有一个 MVC 应用程序,它访问连接到实体框架的 WCF 服务。

我将连接从 MVC 应用程序切换到 WCF 服务,从 basichttp 切换到 TCP/IP,现在我收到一个错误 - 底层提供程序在打开时失败。在访问实体框架时。这个错误不会发生在 basichttp 上。

在 IIS7.5 应用程序池上运行的 WCF 服务设置为集成模式。

连接字符串:

<add name="lc"  
     connectionString="metadata=res://*/Lib.csdl|res://*/Lib.ssdl|res://*/Lib.msl;provider=System.Data.SqlClient;provider connection string=&quot;data source=(local);initial catalog=OB;integrated security=True;multipleactiveresultsets=True;App=EntityFramework&quot;" 
     providerName="System.Data.EntityClient" />

不确定这是否相关,但我不想只使用 sql server 身份验证 windows 身份验证。

感谢您的帮助。

【问题讨论】:

【参考方案1】:

迁移到 IIS 导致双跳问题。 EntityFramework 连接字符串中需要用户名和密码。或者,我授予帐户应用程序池(在我的情况下为 NTAUTHORITY\NETWORK SERVICE)在 sql server 数据库的许可下运行,因为我不需要模拟。

问候, 通用汽车

【讨论】:

以上是关于当 WCF 服务到 TCP/IP 时,底层提供程序在开放实体框架上失败的主要内容,如果未能解决你的问题,请参考以下文章

WCF 安全支持提供程序接口 (SSPI) 协商失败

JAVA Socket 底层是怎样基于TCP/IP 实现的

TCP/IP头部详解

TCP/IP三次握手和HTTP过程

TCP/IP三次握手和HTTP过程

【网络】TCP/IP-传输层知识概要