Веб-сервер Mono XSP не может найти MySql.Web.dll в Linux - PullRequest
0 голосов
/ 21 мая 2010

Я работаю над тем, чтобы мой проект ASP.Net работал на Linux. Я тестировал свой код с использованием XSP для Windows, но теперь я пытаюсь убедиться, что могу разрабатывать и тестировать также и на Linux. Для этого я запустил Ubuntu и MonoDevelop и MySQL. Я скачал последнюю версию MySQL Connector / Net и думаю, что установил ее правильно.

Нет пакета, который автоматически установит MySQL Connector / Net для распространения, поэтому я скачал zip-файл 6.2.3 с веб-сайта MySQL. Теперь я уже обнаружил проблему с чувствительностью к регистру, потому что zip-файл содержит имена файлов в нижнем регистре, а Mono ожидает их в верхнем регистре. Поэтому я изменил имена файлов на MySql.Data.dll и MySql.Web.dll соответственно. Я также использовал gacutil для установки обоих файлов в GAC. Также я добавил файлы в каталог Mono Lib. На моем компьютере существуют следующие файлы:

/usr/lib/mono/gac/MySql.Data/6.2.3.0__c5687fc88969c44d/MySql.Data.dll
/usr/lib/mono/gac/MySql.Web/6.2.3.0__c5687fc88969c44d/MySql.Web.dll
/usr/lib/mono/2.0/MySql.Data.dll
/usr/lib/mono/2.0/MySql.Web.dll

Я также создал файлы пакетов, чтобы можно было добавлять ссылки на сборки в MonoDevelop. Папка /usr/lib/mono/2.0 содержит два файла .pc, которые я добавил.

MySql.Web.pc:

Name: MySql.Web
Description: ASP Membership, Role and Profile providers powered by MySQL
Version: 6.2.3
Libs: -r:/usr/lib/mono/gac/MySql.Web/6.2.3.0__c5687fc88969c44d/MySql.Web.dll

MySql.Data.pc:

Name: MySql.Data
Description: Provides connectivity to MySQL databases
Version: 6.2.3
Libs: -r:/usr/lib/mono/gac/MySql.Data/6.2.3.0__c5687fc88969c44d/MySql.Data.dll

На данный момент я могу использовать сборки в проектах внутри MonoDevelop. Сборки появляются в списке доступных сборок, когда я редактирую ссылки на проекты. Теперь проект без ошибок компилируется внутри MonoDevelop. Однако, когда я запускаю скомпилированный веб-проект в XSP, в браузере отображается следующая ошибка:

System.IO.FileNotFoundException: не удалось загрузить файл или сборку 'MySql.Web.dll, версия = 6.2.3.0, культура = нейтральная, PublicKeyToken = C5687FC88969C44D' или одна из ее зависимостей. Система не может найти указанный файл.

Что раздражает, так это то, что изначально ошибка заключалась в том, что он не мог загрузить MySql. Data .dll, а теперь появляется сообщение об ошибке, что он не может загрузить MySql. Web .dll. , Это означает, что я каким-то образом исправил проблему, которая у меня была с Data DLL, и теперь у меня есть проблема с Web DLL. Я пошел и сделал заново, я научился исправлять проблему для dll Data, но я не могу заставить работать dll Web.

К сожалению, я все еще довольно новичок в Linux и Mono (но не в ASP.Net), и у меня закончились попытки попробовать. Кроме того, я не нашел в Google ничего, что могло бы попробовать, кроме того, что было описано выше, что заставляет меня просить о помощи.

Может кто-нибудь помочь мне выяснить, почему XSP не может найти сборку и что я могу с этим поделать?

Спасибо, -Будет

Ответы [ 2 ]

1 голос
/ 21 мая 2010

Вы можете попробовать установить некоторые переменные окружения, которые должны указать вам, где все Mono ищет сборки:

MONO_LOG_LEVEL = "debug" MONO_LOG_MASK = "dll" xsp2

0 голосов
/ 21 мая 2010

Не идеальное решение (я не знаю, почему это происходит не так), но если вы спешите, скопируйте MySql.Web.dll в каталог bin вашего приложения.

...