我有一个使用 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) 下运行时,连接失败并出现以下异常:
有一个内在的异常(exception)告诉我:
我知道 Cassini 在我登录的帐户下运行,而 IIS 在 IUSR_MYMACHINE 帐户下运行,但我的连接不受信任,所以这无关紧要...
在 IIS 和 Cassini 之间如何以不同的方式操纵或控制 EF 连接?
谢谢,
标记
最佳答案
我们这次的解决方案是强制连接使用 tcp(在连接字符串中使用 data source=tcp:MyServer
)并在 SQL 框上启用 TCP(哎呀!)。
我仍然不知道 Cassini session 如何能够在没有 IIS session 的情况下建立连接:-S
标记