Проблемы с запуском приложения x86 ASP.NET на 64-битных Windows с IIS7.5

StackOverflow https://stackoverflow.com/questions/1679610

Вопрос

В настоящее время я нахожусь в процессе подготовки нового сервера для запуска нашей платформы ASP.NET. Впервые я делаю установку в 64-битных Windows (2008 R2) и с IIS7.5 (до этого всегда 7.0). Наш веб-сайт построен в X86, поэтому я позволил пулам приложений использовать 32-разрядные приложения.

Я застрял при следующей ошибке, которую я получаю, когда просматриваю веб -сайт:

Server Error in '/' Application.



The specified module could not be found. (Exception from HRESULT: 0x8007007E)

Description: An unhandled exception occurred during the execution of the current web request. Please review the stack trace for more information about the error and where it originated in the code.

Exception Details: System.IO.FileNotFoundException: The specified module could not be found. (Exception from HRESULT: 0x8007007E)

Source Error:

An unhandled exception was generated during the execution of the current web request. Information regarding the origin and location of the exception can be identified using the exception stack trace below.


Stack Trace:



[FileNotFoundException: The specified module could not be found. (Exception from HRESULT: 0x8007007E)]

   System.Reflection.Assembly._nLoad(AssemblyName fileName, String codeBase, Evidence assemblySecurity, Assembly locationHint, StackCrawlMark& stackMark, Boolean throwOnFileNotFound, Boolean forIntrospection) +0

   System.Reflection.Assembly.nLoad(AssemblyName fileName, String codeBase, Evidence assemblySecurity, Assembly locationHint, StackCrawlMark& stackMark, Boolean throwOnFileNotFound, Boolean forIntrospection) +43

   System.Reflection.Assembly.InternalLoad(AssemblyName assemblyRef, Evidence assemblySecurity, StackCrawlMark& stackMark, Boolean forIntrospection) +127

   System.Reflection.Assembly.InternalLoad(String assemblyString, Evidence assemblySecurity, StackCrawlMark& stackMark, Boolean forIntrospection) +142

   System.Reflection.Assembly.Load(String assemblyString) +28

   System.Web.Configuration.CompilationSection.LoadAssemblyHelper(String assemblyName, Boolean starDirective) +46



[ConfigurationErrorsException: The specified module could not be found. (Exception from HRESULT: 0x8007007E)]

   System.Web.Configuration.CompilationSection.LoadAssemblyHelper(String assemblyName, Boolean starDirective) +613

   System.Web.Configuration.CompilationSection.LoadAllAssembliesFromAppDomainBinDirectory() +203

   System.Web.Configuration.CompilationSection.LoadAssembly(AssemblyInfo ai) +105

   System.Web.Compilation.BuildManager.GetReferencedAssemblies(CompilationSection compConfig) +178

   System.Web.Compilation.BuildProvidersCompiler..ctor(VirtualPath configPath, Boolean supportLocalization, String outputAssemblyName) +54

   System.Web.Compilation.CodeDirectoryCompiler.GetCodeDirectoryAssembly(VirtualPath virtualDir, CodeDirectoryType dirType, String assemblyName, StringSet excludedSubdirectories, Boolean isDirectoryAllowed) +600

   System.Web.Compilation.BuildManager.CompileCodeDirectory(VirtualPath virtualDir, CodeDirectoryType dirType, String assemblyName, StringSet excludedSubdirectories) +125

   System.Web.Compilation.BuildManager.EnsureFirstTimeDirectoryInit(VirtualPath virtualDir) +8803959

   System.Web.Compilation.BuildManager.GetBuildResultFromCacheInternal(String cacheKey, Boolean keyFromVPP, VirtualPath virtualPath, Int64 hashCode) +219

   System.Web.Compilation.BuildManager.GetVPathBuildResultFromCacheInternal(VirtualPath virtualPath) +43

   System.Web.Compilation.BuildManager.GetVPathBuildResultInternal(VirtualPath virtualPath, Boolean noBuild, Boolean allowCrossApp, Boolean allowBuildInPrecompile) +59

   System.Web.Compilation.BuildManager.GetVPathBuildResultWithNoAssert(HttpContext context, VirtualPath virtualPath, Boolean noBuild, Boolean allowCrossApp, Boolean allowBuildInPrecompile) +101

   System.Web.Compilation.BuildManager.GetVirtualPathObjectFactory(VirtualPath virtualPath, HttpContext context, Boolean allowCrossApp, Boolean noAssert) +126

   System.Web.Compilation.BuildManager.CreateInstanceFromVirtualPath(VirtualPath virtualPath, Type requiredBaseType, HttpContext context, Boolean allowCrossApp, Boolean noAssert) +62

   System.Web.UI.PageHandlerFactory.GetHandlerHelper(HttpContext context, String requestType, VirtualPath virtualPath, String physicalPath) +33

   System.Web.UI.PageHandlerFactory.GetHandler(HttpContext context, String requestType, String virtualPath, String path) +37

   System.Web.MaterializeHandlerExecutionStep.System.Web.HttpApplication.IExecutionStep.Execute() +307

   System.Web.HttpApplication.ExecuteStep(IExecutionStep step, Boolean& completedSynchronously) +155

Я использовал Fuslogvw, чтобы отслеживать любые ошибки привязки .NET: 4 собрания появились, но я получаю то же самое на нашем обычном сервере при первом просмотре сайта. Собрание - это CPPCodeprovider, VJSharpCodeprovider и два из наших *.Resources. Я изучил это, и я не думаю, что они являются причиной этой проблемы, конечно, не после того, как выяснили, что рабочая среда имеет те же недостающие сборки в Fuslogvw.

Далее я использовал Deperency Walker для изучения основного DLL веб -сайта. Кажется, ничего не хватает, но я получаю следующее сообщение:

* Error: Modules with different CPU types were found.

Я не думаю, что это также проблема, потому что моя сборка .NET - X86, а все остальные зависимости - X64.

Поэтому я действительно хочу знать, на что жалуется «Модуль« Отсутствует «модуль» ASP.NET.

Это было полезно?

Решение

Это решило мою проблему: мне пришлось разместить msvcr71.dll в C: Windows System32 и C: Windows Syswow64.

Другие советы

Я решил проблему, установив Включить 32 -битную программу к Истинный Под расширенным настройкой вкладки приложений пула.

Включить 32 -битную программу http://zizhujy.com/blog/image.axd?picture=enable32bit.png

Подробности в этом сообщении в блоге

В последнее время у меня была похожая проблема, когда я помещал приложение Beta 1 4.0 на R2 с аналогичными результатами. Мне потребовалось довольно много времени, чтобы обнаружить, что проблема заключалась в том, что одна из основных сборок .NET, упомянутых в проекте (из GAC), стала отмеченной как Copylocal True. Я понятия не имею, как - я, конечно, не делал этого намеренно и никто не работал над этим. Как только я вернул это (и, я думаю, мне пришлось удалить локальную копию), все было хорошо.

Я нашел ответ для моей проблемы с CPPCodeprovider здесь:http://www.experts-exchange.com/programming/languages/.net/.net_framework_2.0/q_24367712.html(Требуется вход)

Выключите «Определите постоянную трассировку» или установите .NET SDK на компьютер с проблемой.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top