发布Plesk Panel时的实体连接字符串providerName错误

时间:2014-02-03 09:50:29

标签: entity-framework-5 connection-string plesk

我一直在使用带有实体框架的asp.net mvc项目。 最近,我在一个plesk面板上发布了我的应用程序,试图访问网页,但我得到了这个:

应用程序配置文件中的连接字符串“ModelMainContainer”不包含必需的providerName属性。“

以下是我的连接字符串:

  <connectionStrings>
<add name="DefaultConnection" connectionString="Data Source=.\MSSQLSERVER2012;Initial Catalog=AdvertisingDB;Integrated Security=SSPI;AttachDBFilename=|DataDirectory|\AdvertisingDB.mdf providerName=&quot;System.Data.SqlClient&quot;" />
<add name="ModelMainContainer" connectionString="provider=&quot;System.Data.SQLClient&quot;;provider connection string=&quot;data source=.\MSSQLSERVER2012;initial catalog=AdvertisingDB;User ID='******';Password='*******';MultipleActiveResultSets=True;App=EntityFramework;&quot;providerName=&quot;System.Data.EntityClient&quot;" />

如您所见,实际上有一个providername属性。

由于Plesk面板不允许在web.config上进行任何手动更改,因此我在网站和域名选项卡上使用asp.net设置。所以我不能干涉文件中的“quot”,但我真的不认为它们是问题。

有什么想法吗?感谢。

2 个答案:

答案 0 :(得分:0)

我通过正确发布我的web.config得到了这个。似乎问题是将我的providerName定义到正确的位置。例如,如果我尝试在Plesk连接字符串管理器中定义providerName,它就不会那样工作。

答案 1 :(得分:0)

您需要手动编辑Web.Config文件。 “ASP.NET设置”页面将删除providerName。

下面是使用EntityClient的连接字符串示例。如果您不使用实体模型,则可以删除元数据信息。您会注意到providerName在实际connectionString之外,这是您需要手动编辑文件的原因。

connectionString =“metadata = ModelInformation; provider = System.Data.SqlClient; provider connection string =”data source = IP; initial catalog = DATABASE; User ID = USERNAME; Password = PASSWORD; multipleactiveresultsets = True; application name = EntityFramework “”providerName =“System.Data.EntityClient”