【发布时间】:2020-12-18 00:25:32
【问题描述】:
我有一个使用 EF 从 SQL 数据库中检索数据的服务。
EF 模型位于类库中。在类库中连接配置为:
<add name="APIC2CEntities"
connectionString="metadata=res://*/MyModel.csdl|res://*/MyModel.ssdl|res://*/MyModel.msl;provider=System.Data.SqlClient;provider connection string="data source=MYSERVER;initial catalog=MYDB;user id=MYUSER;password=THEPASSWORD;multipleactiveresultsets=True;App=EntityFramework""
providerName="System.Data.EntityClient" />
该类库被 WCF 服务项目引用。在 webconfig 中,我通过以下方式控制 EF 连接:
<add name="APIC2CEntities"
connectionString="metadata=res://*/MyModel.csdl|res://*/MyModel.ssdl|res://*/MyModel.msl;provider=System.Data.SqlClient;provider connection string="data source=MYSERVER;initial catalog=MYDB;user id=MYUSER;password=THEPASSWORD;multipleactiveresultsets=True;App=EntityFramework""
providerName="System.Data.EntityClient" />
当我的服务在 Cassini 中运行时,数据被正确检索。当服务在 IIS (Windows XP) 下运行时,连接失败并出现以下异常:
底层提供者在打开时失败
有一个内部异常告诉我:
{“在建立与 SQL Server 的连接时发生与网络相关或特定于实例的错误。找不到服务器或无法访问该服务器。验证实例名称是否正确以及 SQL Server 是否配置为允许远程连接。(提供者:命名管道提供者,错误:40 - 无法打开与 SQL Server 的连接)"}
我知道 Cassini 在我的登录帐户下运行,而 IIS 在 IUSR_MYMACHINE 帐户下运行,但我的连接不受信任,所以这应该无关紧要... p>
如何在 IIS 和 Cassini 之间以不同方式操作或控制 EF 连接?
谢谢,
标记
【问题讨论】:
-
这个问题似乎与 EF 无关...你能直接打开与 ADO.NET 的连接吗?
-
所有重要的是进程身份和您用于连接的凭据 - 除了身份之外,Cassini 或 IIS 是否正在执行没有区别
标签: entity-framework iis entity-framework-4 cassini