TypeLoadException на asp.net/xsp/mono на debian / opensuse - PullRequest
0 голосов
/ 28 декабря 2010

Когда я сбрасываю apache и загружаю свой сайт, я получаю первую ошибку ниже. Я понятия не имею, в чем проблема. Если я перезагружаю страницу снова (без перезапуска apache), я получаю вторую ошибку, вероятно, потому, что произошла первая ошибка, а BaseUser - первый класс / func, который использует Application_Start.

Почему я получаю это исключение загрузки? Что запуталось, так это то, что я попытался использовать моно VMWare img для его отладки, и я получил то же самое исключение (пока я не перезапустил компьютер, который теперь отказывается дать мне что-нибудь , но 404 ошибки ). Тем не менее, когда я использую Mono Develop для запуска проекта, сайт работает ОТЛИЧНО. WTF.

Есть идеи?

Server Error in '/' Application
A type load exception has occurred.

Description: HTTP 500. Error processing request.

Stack Trace:

System.TypeLoadException: A type load exception has occurred.
  at (wrapper managed-to-native) System.Reflection.MonoMethod:InternalInvoke (System.Reflection.MonoMethod*,object,object[],System.Exception&)
  at System.Reflection.MonoMethod.Invoke (System.Object obj, BindingFlags invokeAttr, System.Reflection.Binder binder, System.Object[] parameters, System.Globalization.CultureInfo culture) [0x00000] in <filename unknown>:0 

Version information: Mono Runtime Version: 2.8.1 (tarball Mon Dec 27 10:20:03 UTC 2010); ASP.NET Version: 2.0.50727.1433

Второе:

Server Error in '/' Application
Could not load type 'mynamespace.BaseUser' from assembly 'mynamespace, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null'.

Description: HTTP 500. Error processing request.

Stack Trace:

System.TypeLoadException: Could not load type 'mynamespace.BaseUser' from assembly 'mynamespace, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null'.
  at mynamespace.Global.Application_Start (System.Object sender, System.EventArgs e) [0x00000] in <filename unknown>:0 
  at (wrapper managed-to-native) System.Reflection.MonoMethod:InternalInvoke (System.Reflection.MonoMethod*,object,object[],System.Exception&)
  at System.Reflection.MonoMethod.Invoke (System.Object obj, BindingFlags invokeAttr, System.Reflection.Binder binder, System.Object[] parameters, System.Globalization.CultureInfo culture) [0x00000] in <filename unknown>:0 

Version information: Mono Runtime Version: 2.8.1 (tarball Mon Dec 27 10:20:03 UTC 2010); ASP.NET Version: 2.0.50727.1433

-edit - я упомяну, что я попробовал сборку моего сайта MonoDevelops как на opensuse, так и на моем сайте, и у меня точно такая же проблема.

1 Ответ

1 голос
/ 28 декабря 2010

У меня было много подобных проблем с Mono в Linux, но мне удалось справиться со всеми из них.

Я не знаю, работает ли это для вас, но я бы выполнил xbuild до запускаxsp.Это помогло мне много раз, и я даже не знаю, почему это было необходимо, поскольку предполагается, что XSP, как обычно делает ASP.NET, прекомпилирует проект C # до компиляции страниц ASP.NET.

TypeLoadException возникает, когда DLL-библиотека сборки не может быть загружена (в общем случае, когда класс отсутствует в сборке, но это не ваш случай), поэтому я предполагаю, что каталог Bin в ASP.NET не заполнен кодом приложенияза библиотекой DLL.

Но ... у меня также есть подозрение: так как mynamespace.Global.Application_Start вызывается, это означает, что ваш код уже скомпилирован , иначе ваша ошибка будетбыть о Global классе.

Попробуйте с моим советом и скажите мне, что происходит.

...