1

我一直在研究 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
....
....
....
4

1 回答 1

0

我已经解决了 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>
于 2012-05-22T09:13:44.070 回答