Asp.net 将.net 2.0应用程序从windows server 2003/iis6迁移到windows server 2008 R2/iis7

Asp.net 将.net 2.0应用程序从windows server 2003/iis6迁移到windows server 2008 R2/iis7,asp.net,iis-7,iis-6,windows-server-2003,windows-server-2008-r2,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位操作

我正在尝试将.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.Configuration.CompilationSection.LoadAssemblyHelper(字符串assemblyName,布尔starDirective)的System.Web.Configuration.CompilationSection.LoadAllAssembliesFromAppDomainBindDirectory()的System.Web.Configuration.CompilationSection.LoadAssembly(AssemblyInfo ai)的System.Web.Compilation.BuildManager.GetReferenceAssemblys位于System.Web.Compilation.WebDirectoryBatchCompiler..ctor(VirtualDirectory vdir)的System.Web.Compilation.BuildManager.BatchCompileWebDirectoryInternal(VirtualDirectory vdir,布尔ignoreErrors)的System.Web.Compilation.BuildManager.BatchCompileWebDirectoryInternal(VirtualDirectory vdir,Boolean ignoreErrors)位于System.Web.Compilation.BuildManager.CompileWebFile(VirtualPath VirtualPath VirtualPath)的System.Web.Compilation.BuildManager.GetVPathBuildResultInternal(VirtualPath VirtualPath,Boolean noBuild,Boolean allowCrossApp,Boolean allowBuildInPrecompile)中的(VirtualDirectory vdir,VirtualPath VirtualPath,Boolean ignoreErrors)在System.Web.Compilation.BuildManager.GetVPathBuildResultWithNoAssert(HttpContext上下文、VirtualPath VirtualPath、Boolean noBuild、Boolean allowCrossApp、Boolean allowBuildInPrecompile)在System.Web.Compilation.BuildManager.GetVirtualPath对象工厂(VirtualPath VirtualPath、HttpContext上下文、Boolean allowCrossApp、Boolean noAssert)位于System.Web.UI.PageHandlerFactory.GetHandlerHelper(HttpContext上下文,String requestType,VirtualPath VirtualPath VirtualPath VirtualPath,Type requiredBaseType,HttpContext上下文,Boolean allowCrossApp,Boolean noAssert)的System.Web.Compilation.BuildManager.CreateInstanceFromVirtualPath(HttpContext上下文,String requestType,VirtualPath VirtualPath,String physicalPath)在System.Web.HttpApplication.MapHttpHandler(HttpContext,String requestType,VirtualPath VirtualPath,String physicalPath)的System.Web.UI.PageHandlerFactory.System.Web.IHttpHandlerFactory2.GetHandler(HttpContext上下文,String requestType,VirtualPath,String pathTranslated,Boolean useAppConfig)位于System.Web.HttpApplication.MapHandlerExecutionStep.System.Web.HttpApplication.IExecutionStep.Execute()处的System.Web.HttpApplication.ExecuteStep(IExecutionStep,布尔值和同步完成)

编辑:

以下是有关IIS配置的详细信息:

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

当我转到子目录并将其设置为应用程序目录时,test.aspx文件不再工作,我得到上面的错误


我希望这能让我对自己的问题有更多的了解。

我找到了自己的问题

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

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

  • MSVCP71DLL(微软C++运行库)
  • MSVCP71.DLL(微软C++运行库)
  • msvcr71d.dll(Microsoft C运行时库)
  • msvcr71.dll(Microsoft C运行时库)
一旦我添加了这些DLL,应用程序就开始工作了


谢谢

您的程序集是针对64位、32位还是“任何CPU”编译的?所有内容都是针对任何CPU编译的