моно 2.10.2 + asp.net mvc3 + MySql.Data.dll - PullRequest
1 голос
/ 09 февраля 2012

У меня следующая конфигурация:

CentOS 5.6 final (Linux 2.6.18-238.12.1.el5 #1 SMP Tue May 31 13:22:04 EDT 2011 x86_64) 
Apache web server (Apache/2.2.17 (EL), API 20051115)
Mono 2.10.2 (from repository http://ftp.novell.com/pub/mono/download-stable/RHEL_5/
Mono is running via mod_mono.

Я пытаюсь сделать действительно простое приложение asp.net mvc3.Все работало хорошо, пока я не добавил доступ к базе данных MySQL.Я прочитал некоторые документы о кошмаре MySQL, поэтому я использую очень элементарный подход (http://loft7270.serverloft.com/honza/DataAccess.cs).

Я взял MySQL Connector / NET 6.4.4 с сайта mysql.com (.NET & Monoверсия), взял mysql.data.dll (версия .NET4.0), исправил имя файла, чтобы MySql.Data.dll поместил его на сервер и установил в .NET, используя

gacutil /i MySql.Data.dll

. Я проверил установку, используя

gacutil /l

(результирующий список: ссылка -> http://loft7270.serverloft.com/honza/registeredAssemblies.txt)

Независимо от того, что я делаю, я всегда получаю ошибку, когда пытаюсь использовать MySql:

Server Error in '/yelt' Application

The assembly name is invalid.

Description: HTTP 500. Error processing request.

Stack Trace:

System.IO.FileLoadException: The assembly name is invalid.
at System.Reflection.AssemblyName..ctor (string) <0x000af>
at Mono.CSharp.ImportedAssemblyDefinition.ReadAttributes () <0x001e7>
at Mono.CSharp.MetadataImporter.GetAssemblyDefinition (System.Reflection.Assembly) <0x00093>
at Mono.CSharp.ReflectionImporter.ImportAssembly (System.Reflection.Assembly,Mono.CSharp.RootNamespace) <0x0003b>
at Microsoft.CSharp.RuntimeBinder.DynamicContext.Create () <0x00297>
at Microsoft.CSharp.RuntimeBinder.CSharpSetMemberBinder.FallbackSetMember (System.Dynamic.DynamicMetaObject,System.Dynamic.DynamicMetaObject,System.Dynamic.DynamicMetaObject) <0x00037>
at System.Dynamic.DynamicObject/MetaDynamic/<BindSetMember>c__AnonStorey3B.<>m__4 (System.Dynamic.DynamicMetaObject) <0x0002c>
at System.Dynamic.DynamicObject/MetaDynamic.CallMethodReturnLast (string,System.Dynamic.DynamicMetaObjectBinder,System.Linq.Expressions.Expression[],System.Linq.Expressions.Expression,System.Dynamic.DynamicObject/MetaDynamic/Fallback) <0x00035>
at System.Dynamic.DynamicObject/MetaDynamic.BindSetMember (System.Dynamic.SetMemberBinder,System.Dynamic.DynamicMetaObject) <0x000eb>
at System.Dynamic.SetMemberBinder.Bind (System.Dynamic.DynamicMetaObject,System.Dynamic.DynamicMetaObject[]) <0x000ac>
at System.Dynamic.DynamicMetaObjectBinder.Bind (object[],System.Collections.ObjectModel.ReadOnlyCollection`1<System.Linq.Expressions.ParameterExpression>,System.Linq.Expressions.LabelTarget) <0x001a4>
at System.Runtime.CompilerServices.CallSiteBinder.BindCore<System.Func`4<System.Runtime.CompilerServices.CallSite, object, string, object>> (System.Runtime.CompilerServices.CallSite`1<System.Func`4<System.Runtime.CompilerServices.CallSite, object, string, object>>,object[]) <0x000a1>
at System.Dynamic.UpdateDelegates.UpdateAndExecute2<object, string, object> (System.Runtime.CompilerServices.CallSite,object,string) <0x00417>
at Yelt.Controllers.HomeController.Index () <0x0011d>
at (wrapper dynamic-method) object.lambda_method (System.Runtime.CompilerServices.Closure,System.Web.Mvc.ControllerBase,object[]) <0x00045>
at System.Web.Mvc.ActionMethodDispatcher.Execute (System.Web.Mvc.ControllerBase,object[]) <0x0002d>
at System.Web.Mvc.ReflectedActionDescriptor.Execute (System.Web.Mvc.ControllerContext,System.Collections.Generic.IDictionary`2<string, object>) <0x0012b>
at System.Web.Mvc.ControllerActionInvoker.InvokeActionMethod (System.Web.Mvc.ControllerContext,System.Web.Mvc.ActionDescriptor,System.Collections.Generic.IDictionary`2<string, object>) <0x00033>
at System.Web.Mvc.ControllerActionInvoker/<>c__DisplayClass15.<InvokeActionMethodWithFilters>b__12 () <0x00072>
at System.Web.Mvc.ControllerActionInvoker.InvokeActionMethodFilter (System.Web.Mvc.IActionFilter,System.Web.Mvc.ActionExecutingContext,System.Func`1<System.Web.Mvc.ActionExecutedContext>) <0x000ed>
Version information: Mono Runtime Version: 2.10.2 (tarball Mon Apr 18 19:06:50 UTC 2011); ASP.NET Version: 4.0.30319.1

Попытка скопировать MySql.Data.dll в папку / bin приводит к другой ошибке:

Server Error in '/yelt' Application

Compilation Error

Description: Error compiling a resource required to service this request. Review your source file and modify it to fix this error.

Compiler Error Message: : at System.Reflection.AssemblyName..ctor (System.String assemblyName) [0x00000] in <filename unknown>:0

~/Global.asax

Show Detailed Compiler Output:

dmcs /target:library /lib:"/var/www/asp.net/yelt/bin" /debug+ /optimize- /warn:4 /out:"/tmp/apache-temp-aspnet-0/165eac4/App_global.asax_4aaabf1a.dll" /r:"/opt/novell/mono/lib/mono/4.0/mscorlib.dll" /r:"/opt/novell/mono/lib/mono/gac/Microsoft.CSharp/4.0.0.0__b03f5f7f11d50a3a/Microsoft.CSharp.dll" /r:"/opt/novell/mono/lib/mono/gac/System/4.0.0.0__b77a5c561934e089/System.dll" /r:"/opt/novell/mono/lib/mono/gac/System.Configuration/4.0.0.0__b03f5f7f11d50a3a/System.Configuration.dll" /r:"/opt/novell/mono/lib/mono/gac/System.Web/4.0.0.0__b03f5f7f11d50a3a/System.Web.dll" /r:"/opt/novell/mono/lib/mono/gac/System.Data/4.0.0.0__b77a5c561934e089/System.Data.dll" /r:"/opt/novell/mono/lib/mono/gac/System.Web.Services/4.0.0.0__b03f5f7f11d50a3a/System.Web.Services.dll" /r:"/opt/novell/mono/lib/mono/gac/System.Xml/4.0.0.0__b77a5c561934e089/System.Xml.dll" /r:"/opt/novell/mono/lib/mono/gac/System.Drawing/4.0.0.0__b03f5f7f11d50a3a/System.Drawing.dll" /r:"/opt/novell/mono/lib/mono/gac/System.EnterpriseServices/4.0.0.0__b03f5f7f11d50a3a/System.EnterpriseServices.dll" /r:"/opt/novell/mono/lib/mono/gac/System.IdentityModel/4.0.0.0__b77a5c561934e089/System.IdentityModel.dll" /r:"/opt/novell/mono/lib/mono/gac/System.Runtime.Serialization/4.0.0.0__b77a5c561934e089/System.Runtime.Serialization.dll" /r:"/opt/novell/mono/lib/mono/gac/System.Xaml/4.0.0.0__b77a5c561934e089/System.Xaml.dll" /r:"/opt/novell/mono/lib/mono/gac/System.ServiceModel/4.0.0.0__b77a5c561934e089/System.ServiceModel.dll" /r:"/opt/novell/mono/lib/mono/gac/System.ServiceModel.Web/4.0.0.0__31bf3856ad364e35/System.ServiceModel.Web.dll" /r:"/opt/novell/mono/lib/mono/gac/System.Core/4.0.0.0__b77a5c561934e089/System.Core.dll" /r:"/opt/novell/mono/lib/mono/gac/System.Web.Extensions/4.0.0.0__31bf3856ad364e35/System.Web.Extensions.dll" /r:"/opt/novell/mono/lib/mono/gac/System.Data.DataSetExtensions/4.0.0.0__b77a5c561934e089/System.Data.DataSetExtensions.dll" /r:"/opt/novell/mono/lib/mono/gac/System.Xml.Linq/4.0.0.0__b77a5c561934e089/System.Xml.Linq.dll" /r:"/opt/novell/mono/lib/mono/gac/System.ComponentModel.DataAnnotations/4.0.0.0__31bf3856ad364e35/System.ComponentModel.DataAnnotations.dll" /r:"/opt/novell/mono/lib/mono/gac/System.Web.DynamicData/4.0.0.0__31bf3856ad364e35/System.Web.DynamicData.dll" /r:"/opt/novell/mono/lib/mono/gac/System.Data.Linq/4.0.0.0__b77a5c561934e089/System.Data.Linq.dll" /r:"/opt/novell/mono/lib/mono/gac/System.Web.ApplicationServices/4.0.0.0__31bf3856ad364e35/System.Web.ApplicationServices.dll" /r:"/opt/novell/mono/lib/mono/gac/System.Web.Abstractions/4.0.0.0__31bf3856ad364e35/System.Web.Abstractions.dll" /r:"/var/www/asp.net/yelt/bin/System.Web.Helpers.dll" /r:"/opt/novell/mono/lib/mono/gac/System.Web.Routing/4.0.0.0__31bf3856ad364e35/System.Web.Routing.dll" /r:"/var/www/asp.net/yelt/bin/System.Web.Mvc.dll" /r:"/var/www/asp.net/yelt/bin/System.Web.WebPages.dll" /r:"/var/www/asp.net/yelt/bin/MySql.Data.dll" /r:"/var/www/asp.net/yelt/bin/NuGet.Core.dll" /r:"/var/www/asp.net/yelt/bin/System.Web.Razor.dll" /r:"/var/www/asp.net/yelt/bin/System.Web.WebPages.Administration.dll" /r:"/var/www/asp.net/yelt/bin/System.Web.WebPages.Deployment.dll" /r:"/var/www/asp.net/yelt/bin/System.Web.WebPages.Razor.dll" /r:"/var/www/asp.net/yelt/bin/WebMatrix.Data.dll" /r:"/var/www/asp.net/yelt/bin/WebMatrix.WebData.dll" /r:"/var/www/asp.net/yelt/bin/Yelt.dll"  /nowarn:0169 /d:DEBUG  -- "/tmp/apache-temp-aspnet-0/165eac4/App_global.asax_4aaabf1a_0.cs" 


Unhandled Exception: System.IO.FileLoadException: The assembly name is invalid.
  at System.Reflection.AssemblyName..ctor (System.String assemblyName) [0x00000] in :0 
  at Mono.CSharp.ImportedAssemblyDefinition.ReadAttributes () [0x00000] in :0 
  at Mono.CSharp.MetadataImporter.GetAssemblyDefinition (System.Reflection.Assembly assembly) [0x00000] in :0 
  at Mono.CSharp.ReflectionImporter.ImportAssembly (System.Reflection.Assembly assembly, Mono.CSharp.RootNamespace targetNamespace) [0x00000] in :0 
  at Mono.CSharp.DynamicLoader.LoadReferences (Mono.CSharp.ModuleContainer module) [0x00000] in :0 
  at Mono.CSharp.Driver.Compile () [0x00000] in :0 
  at Mono.CSharp.Driver.Main (System.String[] args) [0x00000] in :0 
Version information: Mono Runtime Version: 2.10.2 (tarball Mon Apr 18 19:06:50 UTC 2011); ASP.NET Version: 4.0.30319.1

Я пытался обновить mono до 2.10.8, поскольку, согласно некоторым сетям, MySql.Data просто не будетне работает с 2.10.2 из-за какой-то ошибки, но, к сожалению, ни ссылка -> http://help.tcadmin.com/Mono, ни ссылка -> http://http://www.fcraft.net/wiki/Building_Mono walktrhoughs не привели к работе сайта asp.net (даже с удаленным материалом mysql).

Есть идеи, как заставить работать коннектор MySQL?У меня закончились идеи: - / VS2010 Проект урезан до элементарного контента, вызывающего ошибку: http://loft7270.serverloft.com/honza/Yelt.zip

...