【问题标题】:migrate .net 2.0 app from windows server 2003/iis6 to windows server 2008 R2/iis7将 .net 2.0 应用程序从 windows server 2003/iis 6 迁移到 windows server 2008 R2/iis7
【发布时间】:2011-05-11 16:09:15
【问题描述】:

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

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

我也在网上看到了一些关于在 system32 和 syswow64 文件夹中需要 dll msvcr71.dll 的帖子,所以我尝试了,但没有成功。

Windows Server 2008 R2 是 64 位操作系统会不会有问题?

提前感谢您的帮助。

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

在 System.Web.Configuration.CompilationSection.LoadAssembly(AssemblyInfo ai) 在 System.Web.Configuration.CompilationSection.LoadAllAssembliesFromAppDomainBinDirectory() 的 System.Web.Configuration.CompilationSection.LoadAssemblyHelper(String assemblyName, Boolean starDirective) .Compilation.BuildManager.GetReferencedAssemblies(CompilationSection compConfig) 在 System.Web.Compilation.WebDirectoryBatchCompiler..ctor(VirtualDirectory vdir) 在 System.Web.Compilation.BuildManager.BatchCompileWebDirectoryInternal(VirtualDirectory vdir, Boolean ignoreErrors) 在 System.Web.Compilation.BuildManager .BatchCompileWebDirectory(VirtualDirectory vdir, VirtualPath virtualDir, Boolean ignoreErrors) at System.Web.Compilation.BuildManager.CompileWebFile(VirtualPath virtualPath) at System.Web.Compilation.BuildManager.GetVPathBuildResultInternal(VirtualPath virtualPath, Boolean noBuild, Boolean allowCrossApp, Boolean allowBuildInPrecompile) at System.Web.Compilation.BuildManager.GetVPathBui ldResultWithNoAssert(HttpContext context, VirtualPath virtualPath, Boolean noBuild, Boolean allowCrossApp, Boolean allowBuildInPrecompile) 在 System.Web.Compilation.BuildManager.GetVirtualPathObjectFactory(VirtualPath virtualPath, HttpContext context, Boolean allowCrossApp, Boolean noAssert) 在 System.Web.Compilation.BuildManager.CreateInstanceFromVirtualPath (VirtualPath virtualPath,Type requiredBaseType,HttpContext context,Boolean allowCrossApp,Boolean noAssert)在 System.Web.UI.PageHandlerFactory.GetHandlerHelper(HttpContext context,String requestType,VirtualPath virtualPath,String physicalPath)在 System.Web.UI.PageHandlerFactory.System。 Web.IHttpHandlerFactory2.GetHandler(HttpContext context, String requestType, VirtualPath virtualPath, String physicalPath) at System.Web.HttpApplication.MapHttpHandler(HttpContext context, String requestType, VirtualPath path, String pathTranslated, Boolean useAppConfig) at System.Web.HttpApplication.MapHandlerExecutionStep .System.Web.HttpAppl ication.IExecutionStep.Execute() 在 System.Web.HttpApplication.ExecuteStep(IExecutionStep 步骤,Boolean& completedSynchronously)

编辑:

这里是有关 IIS 配置的更多信息:

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

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

我希望这能更清楚地说明我的问题。

【问题讨论】:

  • 您的程序集是为 64 位、32 位还是“任何 CPU”编译的?
  • 一切都是为任何 CPU 编译的

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


【解决方案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,应用程序就开始工作了。

谢谢

【讨论】:

    猜你喜欢
    • 2015-05-14
    • 1970-01-01
    • 2010-11-24
    • 1970-01-01
    • 1970-01-01
    • 2013-01-18
    • 2023-03-08
    • 2014-01-08
    • 1970-01-01
    相关资源
    最近更新 更多