我一直在研究Silverlight应用程序。该应用程序应该由Godaddy托管。
该应用程序连接到MySql作为后端数据库,并使用实体框架。
该应用程序可以在Visual Studio上正常工作。但是,当我将文件移到Godaddy时,我开始遇到一些问题。该应用程序开始引发MetadataException。
我已经使用Fiddler来跟踪问题。第一个WCF请求正确终止,但是随后的请求失败,标头代码为500。引发以下异常。
我已经尝试了许多解决方案,希望能帮助我解决该问题。
我已经完全删除了EDMX模型,并从配置文件中的连接字符串中删除了该条目。然后再次从数据库重新创建edmx文件。
我已经用“ metadata =“ res:// * /”替换了connectionString中的元数据标记,但是没有运气
注意:
我在Godaddy上托管了另一个Silverlight应用程序,该应用程序使用MS SQL SERVER可以正常运行。
[MetadataException: Schema specified is not valid. Errors:
KaneeFollowUpModel.ssdl(2,93) : error 0175: The specified store provider cannot be found in the configuration, or is not valid.]
System.Data.Metadata.Edm.Loader.ThrowOnNonWarningErrors() +8566285
System.Data.Metadata.Edm.Loader.LoadItems(IEnumerable`1 xmlReaders, IEnumerable`1 sourceFilePaths) +181
System.Data.Metadata.Edm.StoreItemCollection.Init(IEnumerable`1 xmlReaders, IEnumerable`1 filePaths, Boolean throwOnError, DbProviderManifest& providerManifest, DbProviderFactory& providerFactory, String& providerManifestToken, Memoizer`2& cachedCTypeFunction) +211
System.Data.Metadata.Edm.StoreItemCollection..ctor(String[] filePaths) +420
System.Data.Mapping.MetadataWorkspaceUtilities.CreateMetadataWorkspaceFromResources(Type contextType, Type baseContextType) +298
System.Data.Mapping.MetadataWorkspaceUtilities.CreateMetadataWorkspace(Type contextType) +28
....
....
....
最佳答案
我已经解决了Pawel提到的问题,而Ladislav Mrnka提供的线程与MYSQL EF提供程序有关。
我做了以下事情来解决这个问题:
1)确保将Mysql.Web,Mysql.Data和Mysql.Data.Entity添加到引用中
2)添加:
<add assembly="MySql.Data, Version=6.4.4.0, Culture=neutral, PublicKeyToken=C5687FC88969C44D"/>
到配置文件中的程序集部分
3)将以下部分添加到配置文件中:
<DbProviderFactories>
<add name="MySQL Data Provider"
invariant="MySql.Data.MySqlClient"
description=".Net Framework Data Provider for MySQL"
type="MySql.Data.MySqlClient.MySqlClientFactory, MySql.Data, Version=6.4.4.0, Culture=neutral, PublicKeyToken=c5687fc88969c44d" />
</DbProviderFactories>
关于c# - MetadataException:指定的架构无效,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/10673262/