Asp.net mvc 3 不支持关键字:';元数据';

Asp.net mvc 3 不支持关键字:';元数据';,asp.net-mvc-3,connection-string,publish,Asp.net Mvc 3,Connection String,Publish,我正试图发布我的mvc 3项目,但由于连接字符串错误,我无法连接到sql server(使用EF)。这是: <add name="PackStoreEntities" connectionString="metadata=res://*/Models.PackStore.csdl|res://*/Models.PackStore.ssdl|res://*/Models.PackStore.msl;provider=System.Data.SqlClient;provider conne

我正试图发布我的mvc 3项目,但由于连接字符串错误,我无法连接到sql server(使用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" />
Mvc项目在本地服务器上运行良好,但发布时我会得到“关键字不受支持:'元数据'”。我的错在哪里?谢谢你的回答。

试试这个

<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" />

从连接字符串中删除元数据。这仅适用于本地调试。对于在线应用程序,可以不要求这样做


请尝试naim提供的连接字符串,我在从Linq转换为Sql到Entity framework时也遇到了这个错误,即使在修复了连接字符串之后也是如此。事实证明,某些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>

也有类似的问题,似乎somee服务器的连接字符串必须介于两个

这就是我更改的所有内容,它可以工作…

在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>

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

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


查看本指南,它可能会让您了解实体连接是如何工作的。

我也有同样的异常,但可以通过保持
连接字符串
不变,但使用
实体连接
而不是
SqlConnection

来修复它。您正在谈论的是替换quot…I
v已尝试此操作。它确实
nt工作,而不是“关键字不受支持”i get:
“在建立与SQL Server的连接时发生了与网络相关或特定于实例的错误。找不到服务器或无法访问服务器。验证实例名称是否正确,以及SQL Server是否配置为允许远程连接。(提供程序:命名管道提供程序,错误:40-无法打开到SQL Server的连接)“
尝试检查您的连接,因为元数据问题将通过此连接字符串解决。检查实例名或userid和pass。userid和pass是100%正确的,那么实例名呢?您正在谈论连接名称?您可以观察到该错误。。。元数据问题已经用这个解决了对不起,也许我是个傻瓜,但是如果我仍然有“关键字不受支持:'元数据'”错误,我不知道如何解决元数据问题。。。。。(我尝试过这个,asme prob.但是如果从我的连接字符串中删除metadata=res://*;
的话,我会得到以下错误:连接字符串中缺少一些必需的信息。“metadata”关键字总是必需的。`请注意,如果你不想使用EDMX而想使用SQL,请使用ame需要如下更改:providerName=“System.Data.EntityClient”
<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>