我一直在研究Silverlight应用程序。该应用程序应该由Godaddy托管。
应用程序连接到MySql,因为它是后端数据库并使用实体框架。
该应用程序在Visual Studio上正常工作。但是,当我将文件移动到Godaddy时,我开始遇到一些问题。应用程序开始抛出MetadataException。
我用Fiddler跟踪问题。第一个WCF请求被正确终止,但后续请求失败,标题代码为500.抛出以下异常。
我很感激帮助我完成这个问题,因为我尝试了很多解决方案。
注意:我在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>