переносить приложение .net 2.0 с Windows Server 2003 / iis6 на Windows Server 2008 R2 / iis7

Я пытаюсь перенести приложение .net 2.0 с Windows Server 2003 на Windows Server 2008.
Я получаю сообщение об ошибке - указанный модуль не может быть найден. (Исключение из HRESULT: 0x8007007E)

Кажется, что отсутствует DLL, но я не могу понять, какая именно. Я скопировал все приложение на новый веб-сайт, созданный в IIS7.

Я также видел несколько сообщений в сети о необходимости наличия dll msvcr71.dll в папках system32 и syswow64, поэтому я попробовал это, но это не сработало.

Может ли быть проблема с 64-битной ОС Windows Server 2008 R2?

Спасибо за любую помощь заранее.

Подробнее из журналов приложений:

в System.Web.Configuration.CompilationSection.LoadAssemblyHelper (String AssemblyName, Boolean starDirective) в System.Web.Configuration.CompilationSection.LoadAllAssembliesFromAppDomainBinDirectory () в System.Web.Configuration.CompilationSection.LoadfoAssembly. BuildManager.GetReferencedAssemblies (CompilationSection compConfig) в System.Web.Compilation.WebDirectoryBatchCompiler..ctor (VirtualDirectory vdir) в System.Web.Compilation.BuildManager.BatchCompileWebDirectoryInternal (VirtualDirectory vdir. VirtualDirectory vdir, VirtualPath virtualDir, Boolean ignoreErrors) в System.Web.Compilation.BuildManager.CompileWebFile (VirtualPath virtualPath) в System.Web.Compilation.BuildManager.GetVPathBuildResultInternal (VirtualPath, virtualPath, Boolean noBuild разрешить System.Web, virtualPath, Boolean .Compilation.BuildManager.GetVPathBuildR esultWithNoAssert (контекст HttpContext, VirtualPath virtualPath, Boolean noBuild, Boolean allowCrossApp, Boolean allowBuildInPrecompile) в System.Web.Compilation.BuildManager.GetVirtualPathObjectFactory (BooildManager.GetVirtualPathObjectFactory (BooildManager.GetVirtualPathObjectFactory (VirtualPath virtualPath, HttpanlementCrossContext context), контекст Boolean VirtualPath, HttpanlementCrossApplication, контекст VirtualPath, VirtualPath.ContextUpdateWeb, контекст (VirtualPath virtualPath, Type requiredBaseType, HttpContext context, Boolean allowCrossApp, Boolean noAssert) в System.Web.UI.PageHandlerFactory.GetHandlerHelper (контекст HttpContext, String requestType, VirtualPath virtualPath, String physicalPath, String PhysicalPath) в System.actoryPage.Usystem. Web.IHttpHandlerFactory2.GetHandler (контекст HttpContext, String requestType, VirtualPath virtualPath, String physicalPath) в System.Web.HttpApplication.MapHttpHandler (контекст HttpContext, String requestType, VirtualPath path, String pathTranslatedHttp://application.php?http://www.httpContext context, String requestType, VirtualPath path, String pathTranslatedHttp; .System.Web.HttpApplica tion.IExecutionStep.Execute () в System.Web.HttpApplication.ExecuteStep (шаг IExecutionStep, логический и завершенный синхронно)

РЕДАКТИРОВАТЬ:

Вот дополнительная информация о конфигурации IIS:

У меня есть основная настройка веб-сайта в пуле приложений, установленном в классическом режиме - я также установил его для запуска 32-битных приложений. Я помещаю в эту папку простой файл test.aspx, и он отлично работает. Затем у меня есть подкаталог, в котором находится приложение, которое я пытаюсь перенести. Я добавил туда еще один файл test.aspx, и теперь могу нормально перейти к нему.

Когда я перехожу в подкаталог и делаю его каталогом приложения, файл test.aspx больше не работает, и я получаю указанную выше ошибку.

Надеюсь, это прольет больше света на мою проблему.


person JustLogic    schedule 17.11.2010    source источник
comment
Ваши сборки скомпилированы для 64-битного, 32-битного или любого процессора?   -  person David    schedule 18.11.2010
comment
Все скомпилировано под любой процессор   -  person JustLogic    schedule 18.11.2010


Ответы (1)


Я понял свою проблему.

В папке bin находится DLL NTidy.dll.

Эта dll требовала, чтобы в папке system32 находились следующие dll:

  • msvcp71d.dll (библиотека времени выполнения Microsoft C ++)
  • msvcp71.dll (библиотека времени выполнения Microsoft C ++)
  • msvcr71d.dll (библиотека времени выполнения Microsoft C)
  • msvcr71.dll (библиотека времени выполнения Microsoft C)

Как только я добавил эти библиотеки, приложение начало работать.

Спасибо

person JustLogic    schedule 18.11.2010