从Windows Server 2003 / iis6迁移.net 2.0应用程序到Windows Server 2008 R2 / iis7

时间:2010-11-17 20:43:38

标签: asp.net iis-7 iis-6 windows-server-2003 windows-server-2008-r2

我正在尝试将.net 2.0应用程序从Windows Server 2003迁移到Windows Server 2008 我收到错误 - 找不到指定的模块。 (HRESULT异常:0x8007007E)

似乎有一个dll缺失,但我似乎无法找出哪一个。我将整个应用程序复制到我在IIS7中创建的新网站。

我还在网上看到一些关于在system32和syswow64文件夹中需要dll msvcr71.dll的帖子所以我试过了,但是它没有用。

Windows Server 2008 R2是64位操作系统会出现问题吗?

感谢您提前提供任何帮助。

应用程序日志中的更多详细信息:

System.Web上的System.Web.Configuration.CompilationSection.LoadAssembly(AssemblyInfo ai)上的System.Web.Configuration.CompilationSection.LoadAllAssembliesFromAppDomainBinDirectory()中的System.Web.Configuration.CompilationSection.LoadAssemblyHelper(String assemblyName,Boolean starDirective)上的

System.Web.Compilation.BuildManager上System.Web.Compilation.BuildManager.BatchCompileWebDirectoryInternal(VirtualDirectory vdir,Boolean ignoreErrors)的System.Web.Compilation.WebDirectoryBatchCompiler..ctor(VirtualDirectory vdir)中的.Compilation.BuildManager.GetReferencedAssemblies(CompilationSection compConfig)位于System.Web.Compilation.BuildManager.GetVPathBuildResultInternal(VirtualPath virtualPath,Boolean noBuild,Boolean allowCrossApp,Boolean allowBuildInPrecompile)的System.Web.Compilation.BuildManager.CompileWebFile(VirtualPath virtualPath)上的.BatchCompileWebDirectory(VirtualDirectory vdir,VirtualPath virtualDir,Boolean ignoreErrors)at at System.Web.Compilation.BuildManager.GetVPathBui System.Web.Compilation.BuildManager.CreateInstanceFromVirtualPath上的System.Web.Compilation.BuildManager.GetVirtualPathObjectFactory(VirtualPath virtualPath,HttpContext context,Boolean allowCrossApp,Boolean noAssert)中的ldResultWithNoAssert(HttpContext上下文,VirtualPath virtualPath,Boolean noBuild,Boolean allowCrossApp,Boolean allowBuildInPrecompile) (VirtualPath virtualPath,Type requiredBaseType,HttpContext context,Boolean allowCrossApp,Boolean noAssert)位于System.Web.UI.PageHandlerFactory.System的System.Web.UI.PageHandlerFactory.GetHandlerHelper(HttpContext context,String requestType,VirtualPath virtualPath,String physicalPath)。 System.Web.HttpApplication.MapHandlerExecutionStep上的System.Web.HttpApplication.MapHttpHandler(HttpContext上下文,String requestType,VirtualPath路径,String pathTranslated,Boolean useAppConfig)中的Web.IHttpHandlerFactory2.GetHandler(HttpContext上下文,String requestType,VirtualPath virtualPath,String physicalPath) .System.Web.HttpAppl System.Web.HttpApplication.ExecuteStep的Iication.IExecutionStep.Execute()(IExecutionStep step,Boolean&已完成(同步)

编辑:

以下是有关IIS配置的更多信息:

我在经典模式下设置的apppool上设置了主网站 - 我还将其设置为运行32位应用程序。我在该文件夹中只放了一个简单的test.aspx文件,它工作正常。然后我有一个子目录,它实际上包含我试图迁移的应用程序。我在那里添加了另一个test.aspx文件,我可以很好地导航到它。

当我进入子目录并使其成为应用程序目录时,test.aspx文件不再有效,我收到上述错误。

我希望这会对我的问题有所了解。

1 个答案:

答案 0 :(得分:1)

我想出了自己的问题。

bin文件夹中有一个DLL NTidy.dll。

此dll需要以下dll位于system32文件夹中:

  • msvcp71d.dll(Microsoft C ++运行时库)
  • msvcp71.dll(Microsoft C ++运行时库)
  • msvcr71d.dll(Microsoft C运行时库)
  • msvcr71.dll(Microsoft C运行时库)

一旦我添加了这些dll,应用程序就开始工作了。

由于