我正在尝试将 .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(字符串程序集名称,布尔starDirective)在System.Web.Configuration.CompilationSection.LoadAllAssembliesFromAppDomainBinDirectory()在System.Web.Configuration.CompilationSection.LoadAssembly(AssemblyInfo ai)在System.Web.Compilation。 BuildManager.GetReferencedAssemblies(CompilationSection compConfig) 在 System.Web.Compilation.WebDirectoryBatchCompiler..ctor(VirtualDirectory vdir) 在 System.Web.Compilation.BuildManager.BatchCompileWebDirectoryInternal(VirtualDirectory vdir, BooleanignoreErrors) 在 System.Web.Compilation.BuildManager.BatchCompileWebDirectory( VirtualDirectory vdir,VirtualPath virtualDir,布尔ignoreErrors)在System.Web.Compilation.BuildManager.CompileWebFile(VirtualPath virtualPath)在System.Web.Compilation.BuildManager.GetVPathBuildResultInternal(VirtualPath virtualPath,布尔noBuild,布尔allowCrossApp,布尔allowBuildInPrecompile)在System.Web .Compilation.BuildManager.GetVPathBuildResultWithNoAssert(HttpContext context,VirtualPath virtualPath,布尔noBuild,布尔allowCrossApp,布尔allowBuildInPrecompile)在System.Web.Compilation.BuildManager.GetVirtualPathObjectFactory(VirtualPath virtualPath,HttpContext上下文,布尔allowCrossApp,布尔noAssert)在System.Web。 Compilation.BuildManager.CreateInstanceFromVirtualPath(VirtualPath virtualPath,类型 requiredBaseType,HttpContext context,布尔值allowCrossApp,布尔值noAssert)在System.Web.UI.PageHandlerFactory.GetHandlerHelper(HttpContext上下文,字符串requestType,VirtualPath virtualPath,字符串physicalPath)在System.Web.UI .PageHandlerFactory.System.Web.IHttpHandlerFactory2.GetHandler(HttpContext上下文,字符串requestType,VirtualPath virtualPath,字符串physicalPath)在System.Web.HttpApplication.MapHttpHandler(HttpContext上下文,字符串requestType,VirtualPath路径,字符串pathTranslated,布尔useAppConfig)在System. Web.HttpApplication.MapHandlerExecutionStep.System.Web.HttpApplication.IExecutionStep.Execute() 在 System.Web.HttpApplication.ExecuteStep(IExecutionStep 步骤,布尔值&completedSynchronously)

编辑:

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

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

当我转到子目录并将其设为应用程序目录时,test.aspx 文件不再起作用,并且出现上述错误。

我希望这能让我的问题得到更多的了解。

有帮助吗?

解决方案

我想出了我自己的问题。

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

该 dll 要求 system32 文件夹中包含以下 dll:

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

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

谢谢

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top