3

我正在尝试发布我的 mvc 3 项目,但由于连接字符串错误,我无法连接到 sql 服务器(使用 EF)。这里是:

  <add name="PackStoreEntities" connectionString="metadata=res://*/Models.PackStore.csdl|res://*/Models.PackStore.ssdl|res://*/Models.PackStore.msl;provider=System.Data.SqlClient;provider connection string=&quot;workstation id=PackStore.mssql.somee.com;packet size=4096;user id=*****;pwd=****;data source=PackStore.mssql.somee.com;persist security info=False;initial catalog=PackStore&quot;" providerName="System.Data.EntityClient" />

我把这部分从我的主人那里拿走了:

workstation id=PackStore.mssql.somee.com;packet size=4096;user id=*****;pwd=****;data source=PackStore.mssql.somee.com;persist security info=False;initial catalog=PackStore

Mvc 项目在本地服务器上运行良好,但在发布时我得到 "Keyword not supported: 'metadata'" 。我的错误在哪里?谢谢你的答案。

4

7 回答 7

4

试试这个...

<add name="PackStoreEntities" connectionString="metadata=res://*;provider=System.Data.SqlClient;provider connection string='Data Source=PackStore.mssql.somee.com;Initial Catalog=PackStore;User ID=***;Password=****;'"  providerName="System.Data.EntityClient" />

编辑..

<add name="PackStoreEntities" connectionString="metadata=res://*;provider=System.Data.SqlClient;provider connection string='workstation id=PackStore.mssql.somee.com;packet size=4096;user id=*****;pwd=****;data source=PackStore.mssql.somee.com;persist security info=False;initial catalog=PackStore;'" providerName="System.Data.EntityClient" />
于 2012-04-21T11:06:16.797 回答
2

我在从 Linq To Sql 转换为 Entity 框架时也遇到了这个错误,即使在修复了我的连接字符串之后也是如此。原来有些 asp:SqlDataSource 控件需要切换到 asp:EntityDataSource。

前:

    <asp:SqlDataSource ID="SqlDataSourceProducts" runat="server" SelectCommand="SELECT Id, Description FROM [Product]"
        ConnectionString="<%$ ConnectionStrings:crmConnectionString %>" CacheDuration="5" CacheExpirationPolicy="Absolute">
    </asp:SqlDataSource>

后:

    <asp:EntityDataSource ID="SqlDataSourceProducts" runat="server" Select="Id, Description"
        EntitySetName="Products" ConnectionString="<%$ ConnectionStrings:crmConnectionString %>" DefaultContainerName="CRM" >
    </asp:EntityDataSource>
于 2013-01-02T21:33:20.440 回答
1

在您的 web.config 中,您需要有两个单独的连接:一个用于实体框架,一个用于 ADO.net

应该是这样的:

<connectionStrings>
        <add name="LoginDB" connectionString="Data Source=****;Initial Catalog=int422_113b16;User ID=****;Password=****" />
        <add name="BlogEntities" connectionString="metadata=res://*/App_Code.BlogModel.csdl|res://*/App_Code.BlogModel.ssdl|res://*/App_Code.BlogModel.msl;provider=System.Data.SqlClient;provider connection string=&quot;data source****;initial catalog=int422_113b16;user id=****;password=****;multipleactiveresultsets=True;App=EntityFramework&quot;" providerName="System.Data.EntityClient" />
</connectionStrings>
于 2013-10-29T16:01:17.207 回答
0

从连接字符串中删除他的元数据。这仅适用于本地调试。对于在线申请可以不需要。

请尝试 naim 给出的连接字符串

于 2012-04-21T11:14:35.437 回答
0

有一个类似的问题,似乎来自somee服务器的连接字符串必须在两个之间&quot; 这就是我改变的全部并且它有效......

于 2013-09-15T05:04:32.303 回答
0

我不确定为什么人们认为您的 web.config 中需要两个连接,这是不正确的。我想检查的第一件事是查看我的连接是否在 Visual Studio 中有效。尝试转到您的服务器资源管理器并在那里连接到您的数据库。如果您能够毫无问题地连接并且能够看到您的表格,那么您就知道这不是连接问题。第二件事确保您的模型名称与您的 web.config 中的名称匹配。这可以最大限度地减少项目中的混乱程度,并最终确保您的模型名称空间指向您的项目名称空间,这样您就可以通过模型名称调用模型,而不必导入或完全限定它。

您应该能够使用模型中的任何表创建强视图。这就是我为我所做的,我没有像许多人建议的那样修改连接字符串,也没有删除元数据。

查看此故障排除指南,它可能会有所启发,并帮助您了解实体连接的工作原理。

于 2013-11-12T15:32:36.127 回答
0

我有同样的例外,但能够通过保持ConnectionString相同但使用 aEntityConnection而不是 a来修复它SqlConnection

于 2016-04-06T21:10:21.140 回答