2009-11-18 7 views
0

Я испытываю странный провал при попытке просмотра моего веб-сайта под IIS. Если я создаю новое приложение веб-сайта ASP.Net, не изменяйте его на всех, и запустить его (F5) на веб-странице показывается с ошибкой:Странная ошибка GAC в приложении ASP.Net

Compilation Error 
Description: An error occurred during the compilation of a resource required to 
service this request. Please review the following specific error details and modify 
your source code appropriately. 

Compiler Error Message: CE29: (CE29) Unable to load assembly C:\Windows\assembly\GAC_64 
\System.EnterpriseServices\2.0.0.0__b03f5f7f11d50a3a\System.EnterpriseServices.dll Not 
a valid .NET executable (Offset and length were out of bounds for the array or count 
is greater than the number of elements from index to the end of the source collection.) 

Это выглядит как проблема конфигурации .Net, но Я не знаю, как это исправить. У меня установлен .Net 3.5 SP1 и IIS 7.0, работающий на Vista Home Premium 64-бит. Веб-сайт создается с использованием Delphi Prism, который работает в оболочке Visual Studio 2008. Я googled и googled и googled но ничего. Любая помощь очень ценится!

ответ

0

Пожалуйста, проверьте ссылки на свой проект. Вы ссылаетесь на System.EnterpriseServices? Если вы не видите файл machine.config. Может быть, там есть ссылка на сборку?

1

Добавить System.EnterpriseServices (C: \ WINDOWS \ Microsoft.NET \ Framework \ v2.0.50727 \ CONFIG) в вашу ссылку поможет решить вашу проблему.

ИЛИ

удалить ссылки из web.config Если вы не используете это.

+0

Спасибо, что ответили на вас обоих. Это было указано в проекте, поэтому я удалил его, по-прежнему ту же ошибку. Затем я добавил следующую строку в machine.config: По крайней мере, он работает в сервере разработки cassini. –

0

Вы можете попробовать удалить ссылки на эту DLL, но Prism, вероятно, поместил ее там по какой-то причине. Существует много возможных причин. Возможно, вы указали поддержку транзакций на уровне страницы или используете COM-взаимодействие. Вы можете определить причину, временно удалив ссылку и сделав полную перестройку, чтобы узнать, о чем жалуется компилятор.

Какова бы ни была причина, если вы обнаружите, что вам все еще нужна эта сборка, вам просто нужно будет правильно выбрать нужное место, чтобы IIS мог ее загрузить.

Попробуйте открыть GAC в проводнике Windows. Я не запускаю Vista, так что медведь со мной, если ваши шаги отличаются от моих. Slick START, затем введите c: \ windows \ assembly. Вам, очевидно, потребуется разрешение на просмотр/управление этой папкой. Найдите соответствующую сборку и посмотрите доступные версии. Похоже, что подсистема .NET пытается использовать ваше приложение как 64-битное и требует 64-битной версии этой сборки.

Если вы не видите соответствующую сборку в GAC (вы, вероятно, увидите другие версии), то это, вероятно, объясняет это.

Я не уверен в решении, но две вещи, которые я могу попробовать, - убедиться, что у вас есть 64-разрядная версия DLL в вашей системе и попытайтесь установить ее в GAC с помощью GACUtil/i , Вы также можете попробовать перенастроить ASP.Net для IIS с помощью aspnet_regiis.exe -i.

 Смежные вопросы

  • Нет связанных вопросов^_^