Ошибка со ссылкой на внешнюю библиотеку в библиотеке классов обслуживания wcf-ria с IIS 7.5 в 64-битной Windows-7 - PullRequest
0 голосов
/ 09 января 2012

Для создания моего приложения Silverlight 4.0 я начал с шаблона «Бизнес-приложение» в Visual Studio 2010. Затем я добавил проект библиотеки классов WCF-RIA и ссылался на него в основном проекте ASP.Net.Затем в проекте WCF-RIA я добавил ссылку на внешний файл .DLL, созданный моим соавтором, из которого я получаю данные.

Проблема заключается в следующем: пока я выполняю свое приложение с помощью Visual Studio DevelopmentСервер (Кассини) все в порядке.Когда я пытаюсь выполнить приложение на IIS (версия 7.5 на моем 64-битном Windows-7), я получаю ошибку, вызванную ссылкой на внешний .DLL (на самом деле, если я удалю .DLL, все снова будет работать).

Мое приложение должно быть настроено как есть, тогда я спрашиваю: в чем проблема, и (особенно), как я могу обойти это?

Заранее большое спасибо!

Pileggi

Это ошибка:

Ошибка сервера в приложении «/ MyApp».


Не удалось загрузить файл или сборку «MyLibrary» илиодна из его зависимостей.Tentativo di caricare un programma con un formato non corretto.Описание: во время выполнения текущего веб-запроса произошло необработанное исключение.Просмотрите трассировку стека для получения дополнительной информации об ошибке и о том, где она возникла в коде.

Сведения об исключении: System.BadImageFormatException: Не удалось загрузить файл или сборку 'MyLibrary' или одну из ее зависимостей.Tentativo di caricare un programma con un formato corretto.

Ошибка источника:

Во время выполнения текущего веб-запроса было сгенерировано необработанное исключение.Информация о происхождении и местонахождении исключения может быть идентифицирована с помощью приведенной ниже трассировки стека исключений.

Отслеживание загрузки сборки: следующая информация может быть полезна для определения, почему сборка «MyLibrary» не может быть загружена.

WRN: регистрация привязки сборки отключена.Чтобы включить ведение журнала ошибок привязки сборки, установите для параметра реестра [HKLM \ Software \ Microsoft \ Fusion! EnableLog] (DWORD) значение 1. Примечание. С журналированием ошибок привязки сборки связано некоторое снижение производительности.Чтобы отключить эту функцию, удалите значение реестра [HKLM \ Software \ Microsoft \ Fusion! EnableLog].

Трассировка стека:

[BadImageFormatException: Не удалось загрузить файл или сборку 'MyLibrary' илиодна из его зависимостей.Tentativo ди caricare ип Programma кон ип Formato не Corretto.] System.Reflection.RuntimeAssembly._nLoad (AssemblyName имя_файла, строка CodeBase, фактические данные assemblySecurity, RuntimeAssembly locationHint, StackCrawlMark & ​​stackMark, булева throwOnFileNotFound, булева forIntrospection, булевы suppressSecurityChecks) +0 System.Reflection.RuntimeAssembly.InternalLoadAssemblyName (AssemblyName assemblyRef, фактические данные assemblySecurity, StackCrawlMark & ​​stackMark, булева forIntrospection, булевы suppressSecurityChecks) +567 System.Reflection.RuntimeAssembly.InternalLoad (String assemblyString, фактические данные assemblySecurity, StackCrawlMark & ​​stackMark, булева forIntrospection) +192 System.Reflection.Assembly.Load(String assemblyString) +35 System.Web.Configuration.CompilationSection.LoadAssemblyHelper (String assemblyName, Boolean starDirective) + 147

[ConfigurationErrorsException: не удалось загрузить файл или сборку 'MyLibrary' или одну из ее зависимостей.Вы можете использовать эту программу для программирования без коррекции.] System.Web.Configuration.CompilationSection..get_AssemblyInternal () +104 System.Web.Compilation.BuildManager.GetReferencedAssemblies (CompilationSection compConfig) +334 System.Web.Compilation.BuildManager.CallPreStartInitMethods () +264System.Web.Hosting.HostingEnvironment.Initialize (ApplicationManager appManager, IApplicationHost appHost, IConfigMapPathFactory configMapPathFactory, HostingEnvironmentParameters hostingParameters, policyLevel policyLevel, исключение appDomainCeation_Exception_LoG * 0 * 0 * 0 * 0 * 0 * 0 * 8 * 0'или одна из его зависимостей.Это приложение не может содержать никаких программ.] System.Web.HttpRuntime.FirstRequestInit (контекст HttpContext) +646 System.Web.HttpRuntime.контекст) + 771


Информация о версии: Microsoft .NET Framework Версия: 4.0.30319;ASP.NET версия: 4.0.30319.1

1 Ответ

0 голосов
/ 10 января 2012

Хорошо, я обнаружил, что проблема в том, что DLL создана для 32-битных систем, а IIS по умолчанию допускает только файлы, созданные для одного и того же процессора операционной системы (а my - 64-битная).Для решения проблемы есть 2 варианта: пересобрать библиотеку DLL для 64-битного процессора или изменить свойство «Разрешить 32-битные приложения» пула приложений.

...