0

实体框架对我来说是新的,我按照下面的示例创建一个带有实体框架的 wcf 服务。

实体框架入门介绍

很简单,所有的东西都是自动生成的,我的数据库位于我的 app_data 文件夹中。因此,在 Visual Studio 中运行后,我想发布和部署到 IIS 服务器。

但是当我尝试在服务器中运行它时,它会返回这个错误

The underlying provider failed on Open.
   at System.Data.EntityClient.EntityConnection.OpenStoreConnectionIf(Boolean openCondition, DbConnection storeConnectionToOpen, DbConnection originalConnection, String exceptionCode, String attemptedOperation, Boolean& closeStoreConnectionOnFailure)
   at System.Data.EntityClient.EntityConnection.Open()
   at System.Data.Objects.ObjectContext.EnsureConnection()
   at System.Data.Objects.ObjectQuery`1.GetResults(Nullable`1 forMergeOption)
   at System.Data.Objects.ObjectQuery`1.System.Collections.Generic.IEnumerable<T>.GetEnumerator()
   at System.Collections.Generic.List`1..ctor(IEnumerable`1 collection)
   at System.Linq.Enumerable.ToList[TSource](IEnumerable`1 source)

这是我在 web.config 中的连接字符串

<connectionStrings>
    <add name="BPMCommonEntities" connectionString="metadata=res://*/BPMCommonDB.csdl|res://*/BPMCommonDB.ssdl|res://*/BPMCommonDB.msl;provider=System.Data.SqlClient;provider connection string=&quot;data source=.\SQLEXPRESS;attachdbfilename=|DataDirectory|\BPMCommon.mdf;integrated security=True;user instance=True;multipleactiveresultsets=True;App=EntityFramework&quot;" providerName="System.Data.EntityClient" />
</connectionStrings>

我没有改变它的任何东西,也不知道要改变什么。

我错过了什么?这个错误来自哪里,我应该改变什么来解决这个问题?

4

1 回答 1

2

当您在本地计算机上工作时,您让 SQLExpress 托管您的数据库,而当您将其部署到服务器时,您需要一个数据库服务器来托管您的数据库,这就是您将 .\SQLExpress 替换为您的服务器名称的地方。

于 2013-08-20T13:19:03.950 回答