我一直在使用带有实体框架的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="System.Data.SqlClient"" />
<add name="ModelMainContainer" connectionString="provider="System.Data.SQLClient";provider connection string="data source=.\MSSQLSERVER2012;initial catalog=AdvertisingDB;User ID='******';Password='*******';MultipleActiveResultSets=True;App=EntityFramework;"providerName="System.Data.EntityClient"" />
如您所见,实际上有一个providername属性。
由于Plesk面板不允许在web.config上进行任何手动更改,因此我在网站和域名选项卡上使用asp.net设置。所以我不能干涉文件中的“quot”,但我真的不认为它们是问题。
有什么想法吗?感谢。
答案 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”