1

这是我第一次在 debian 上部署 .net。我的应用程序是使用数据库优先方法使用 Devart mysql 连接器在 win 7 vs2012 中创建和测试的,之后我开始在 linux 上部署它。我遇到了一堆障碍!我已经筋疲力尽了……有人可以帮忙吗?在此之前,我想购买 devart mysql 连接器 prof 版......这是我的堆栈

System.Data.Entity.Core.MetadataException: Unable to load the specified metadata resource.
at System.Data.Entity.Core.Metadata.Edm.MetadataArtifactLoaderCompositeResource.LoadResources (System.String assemblyName, System.String resourceName, ICollection`1 uriRegistry, System.Data.Entity.Core.Metadata.Edm.MetadataArtifactAssemblyResolver resolver) [0x00000] in <filename unknown>:0
at System.Data.Entity.Core.Metadata.Edm.MetadataArtifactLoaderCompositeResource..ctor (System.String originalPath, System.String assemblyName, System.String resourceName, ICollection`1 uriRegistry, System.Data.Entity.Core.Metadata.Edm.MetadataArtifactAssemblyResolver resolver) [0x00000] in <filename unknown>:0
at System.Data.Entity.Core.Metadata.Edm.MetadataArtifactLoaderCompositeResource.CreateResourceLoader (System.String path, ExtensionCheck extensionCheck, System.String validExtension, ICollection`1 uriRegistry, System.Data.Entity.Core.Metadata.Edm.MetadataArtifactAssemblyResolver resolver) [0x00000] in <filename unknown>:0
at System.Data.Entity.Core.Metadata.Edm.MetadataArtifactLoader.Create (System.String path, ExtensionCheck extensionCheck, System.String validExtension, ICollection`1 uriRegistry, System.Data.Entity.Core.Metadata.Edm.MetadataArtifactAssemblyResolver resolver) [0x00000] in <filename unknown>:0
at System.Data.Entity.Core.Metadata.Edm.MetadataArtifactLoader.Create (System.String path, ExtensionCheck extensionCheck, System.String validExtension, ICollection`1 uriRegistry) [0x00000] in <filename unknown>:0
at System.Data.Entity.Core.Metadata.Edm.MetadataCache.SplitPaths (System.String paths) [0x00000] in <filename unknown>:0
at System.Data.Entity.Core.Common.Utils.Memoizer`2+<>c__DisplayClass2[System.String,System.Collections.Generic.List`1[System.Data.Entity.Core.Metadata.Edm.MetadataArtifactLoader]].<Evaluate>b__0 () [0x00000] in <filename unknown>:0
at System.Data.Entity.Core.Common.Utils.Memoizer`2+Result[System.String,System.Collections.Generic.List`1[System.Data.Entity.Core.Metadata.Edm.MetadataArtifactLoader]].GetValue () [0x00000] in <filename unknown>:0
at System.Data.Entity.Core.Common.Utils.Memoizer`2[System.String,System.Collections.Generic.List`1[System.Data.Entity.Core.Metadata.Edm.MetadataArtifactLoader]].Evaluate (System.String arg) [0x00000] in <filename unknown>:0
at System.Data.Entity.Core.Metadata.Edm.MetadataCache.GetArtifactLoader (System.Data.Entity.Core.EntityClient.Internal.DbConnectionOptions effectiveConnectionOptions) [0x00000] in <filename unknown>:0
at System.Data.Entity.Core.Metadata.Edm.MetadataCache.GetMetadataWorkspace (System.Data.Entity.Core.EntityClient.Internal.DbConnectionOptions effectiveConnectionOptions) [0x00000] in <filename unknown>:0
at System.Data.Entity.Core.EntityClient.EntityConnection.GetMetadataWorkspace () [0x00000] in <filename unknown>:0
at System.Data.Entity.Core.Objects.ObjectContext.RetrieveMetadataWorkspaceFromConnection () [0x00000] in <filename unknown>:0
at System.Data.Entity.Core.Objects.ObjectContext..ctor (System.Data.Entity.Core.EntityClient.EntityConnection connection, Boolean isConnectionConstructor, System.Data.Entity.Core.Objects.Internal.ObjectQueryExecutionPlanFactory objectQueryExecutionPlanFactory, System.Data.Entity.Core.Common.Internal.Materialization.Translator translator, System.Data.Entity.Core.Query.InternalTrees.ColumnMapFactory columnMapFactory) [0x00000] in <filename unknown>:0
at System.Data.Entity.Core.Objects.ObjectContext..ctor (System.String connectionString) [0x00000] in <filename unknown>:0
at System.Data.Entity.Core.Objects.ObjectContext..ctor (System.String connectionString, System.String defaultContainerName) [0x00000] in <filename unknown>:0
at PararuLibrary.Databases.Mysql.PararuRuMysqlEntities..ctor () [0x00000] in /home/dotnetprojects/WebService1/PararuLibrary/Databases/Mysql/PararyEDM.Designer.cs:52
at PararuLibrary.Repositories.UserRepository..ctor () [0x00000] in /home/dotnetprojects/WebService1/PararuLibrary/Repositories/UserRepository.cs:24
at ConsoleTest.Program.Proceed () [0x00040] in /home/dotnetprojects/WebService1/ConsoleTest/Program.cs:28
at ConsoleTest.Program.Main (System.String[] args) [0x00001] in /home/dotnetprojects/WebService1/ConsoleTest/Program.cs:22

之后,我在连接字符串中应用了 App.config 中的更改:

<add name="PararuRuEntitiesCS" connectionString="metadata=res://*/Databases.Mysql.PararyEDM.csdl|res://*/Databases.Mysql.PararyEDM.ssdl|res://*/Databases.Mysql.PararyEDM.msl;provider=Devart.Data.MySql;provider connection string=&quot;User Id=root;Host=localhost;Database=pararu_ru;Persist Security Info=True&quot;" providerName="System.Data.EntityClient" />

至...

<add name="PararuRuEntitiesCS" connectionString="metadata=res://PararuLibrary/Databases.Mysql.PararyEDM.csdl|res://PararuLibrary/Databases.Mysql.PararyEDM.ssdl|res://PararuLibrary/Databases.Mysql.PararyEDM.msl;provider=Devart.Data.MySql;provider connection string=&quot;User Id=root;Host=localhost;Database=pararu_ru;Persist Security Info=True&quot;"
      providerName="System.Data.EntityClient" />

... 我有这个 ...

System.NotImplementedException: The requested feature is not implemented.
  at System.Reflection.AssemblyName.ReferenceMatchesDefinition (System.Reflection.AssemblyName reference, System.Reflection.AssemblyName definition) [0x00000] in <filename unknown>:0
  at System.Data.Entity.Core.Metadata.Edm.DefaultAssemblyResolver.ResolveAssembly (System.Reflection.AssemblyName referenceName) [0x00000] in <filename unknown>:0
  at System.Data.Entity.Core.Metadata.Edm.DefaultAssemblyResolver.TryResolveAssemblyReference (System.Reflection.AssemblyName refernceName, System.Reflection.Assembly& assembly) [0x00000] in <filename unknown>:0
  at System.Data.Entity.Core.Metadata.Edm.MetadataArtifactLoaderCompositeResource.ResolveAssemblyName (System.String assemblyName, System.Data.Entity.Core.Metadata.Edm.MetadataArtifactAssemblyResolver resolver) [0x00000] in <filename unknown>:0
  at System.Data.Entity.Core.Metadata.Edm.MetadataArtifactLoaderCompositeResource.CreateResourceLoader (System.String path, ExtensionCheck extensionCheck, System.String validExtension, ICollection`1 uriRegistry, System.Data.Entity.Core.Metadata.Edm.MetadataArtifactAssemblyResolver resolver) [0x00000] in <filename unknown>:0
  at System.Data.Entity.Core.Metadata.Edm.MetadataArtifactLoader.Create (System.String path, ExtensionCheck extensionCheck, System.String validExtension, ICollection`1 uriRegistry, System.Data.Entity.Core.Metadata.Edm.MetadataArtifactAssemblyResolver resolver) [0x00000] in <filename unknown>:0
  at System.Data.Entity.Core.Metadata.Edm.MetadataArtifactLoader.Create (System.String path, ExtensionCheck extensionCheck, System.String validExtension, ICollection`1 uriRegistry) [0x00000] in <filename unknown>:0
  at System.Data.Entity.Core.Metadata.Edm.MetadataCache.SplitPaths (System.String paths) [0x00000] in <filename unknown>:0
  at System.Data.Entity.Core.Common.Utils.Memoizer`2+<>c__DisplayClass2[System.String,System.Collections.Generic.List`1[System.Data.Entity.Core.Metadata.Edm.MetadataArtifactLoader]].<Evaluate>b__0 () [0x00000] in <filename unknown>:0
  at System.Data.Entity.Core.Common.Utils.Memoizer`2+Result[System.String,System.Collections.Generic.List`1[System.Data.Entity.Core.Metadata.Edm.MetadataArtifactLoader]].GetValue () [0x00000] in <filename unknown>:0
  at System.Data.Entity.Core.Common.Utils.Memoizer`2[System.String,System.Collections.Generic.List`1[System.Data.Entity.Core.Metadata.Edm.MetadataArtifactLoader]].Evaluate (System.String arg) [0x00000] in <filename unknown>:0
  at System.Data.Entity.Core.Metadata.Edm.MetadataCache.GetArtifactLoader (System.Data.Entity.Core.EntityClient.Internal.DbConnectionOptions effectiveConnectionOptions) [0x00000] in <filename unknown>:0
  at System.Data.Entity.Core.Metadata.Edm.MetadataCache.GetMetadataWorkspace (System.Data.Entity.Core.EntityClient.Internal.DbConnectionOptions effectiveConnectionOptions) [0x00000] in <filename unknown>:0
  at System.Data.Entity.Core.EntityClient.EntityConnection.GetMetadataWorkspace () [0x00000] in <filename unknown>:0
  at System.Data.Entity.Core.Objects.ObjectContext.RetrieveMetadataWorkspaceFromConnection () [0x00000] in <filename unknown>:0
  at System.Data.Entity.Core.Objects.ObjectContext..ctor (System.Data.Entity.Core.EntityClient.EntityConnection connection, Boolean isConnectionConstructor, System.Data.Entity.Core.Objects.Internal.ObjectQueryExecutionPlanFactory objectQueryExecutionPlanFactory, System.Data.Entity.Core.Common.Internal.Materialization.Translator translator, System.Data.Entity.Core.Query.InternalTrees.ColumnMapFactory columnMapFactory) [0x00000] in <filename unknown>:0
  at System.Data.Entity.Core.Objects.ObjectContext..ctor (System.String connectionString) [0x00000] in <filename unknown>:0
  at System.Data.Entity.Core.Objects.ObjectContext..ctor (System.String connectionString, System.String defaultContainerName) [0x00000] in <filename unknown>:0
  at PararuLibrary.Databases.Mysql.PararuRuMysqlEntities..ctor () [0x00000] in /home/dotnetprojects/WebService1/PararuLibrary/Databases/Mysql/PararyEDM.Designer.cs:52
  at PararuLibrary.Repositories.UserRepository..ctor () [0x00000] in /home/dotnetprojects/WebService1/PararuLibrary/Repositories/UserRepository.cs:24
  at ConsoleTest.Program.Proceed () [0x00040] in /home/dotnetprojects/WebService1/ConsoleTest/Program.cs:28
  at ConsoleTest.Program.Main (System.String[] args) [0x00001] in /home/dotnetprojects/WebService1/ConsoleTest/Program.cs:22
4

2 回答 2

-1

错误很明显:该方法未在 Mono 中实现。

Mono 是一个开源项目。如果没有像您这样的人的贡献,它就无法不断发展。请考虑为该方法贡献一个实现(不要查看 MS 来源,因为它无效)。

于 2013-06-13T16:58:58.683 回答
-1

它看起来像一个 Mono 错误。尝试以下解决方法:将“元数据工件处理”模型属性值从“嵌入输出程序集”更改为“复制到输出目录”。保存模型,在 Windows 上重建项目以确保其正常工作,然后在 Mono 上进行部署。

于 2013-06-11T14:52:05.497 回答