migrate .net 2.0 app from windows server 2003/iis6 to windows server 2008 R2/iis7
I am attempting to migrate a .net 2.0 application from Windows Server 2003 to windows server 2008.
I am receiving the error - The specified module could not be found. (Exception from HRESULT: 0x8007007E)It seems like there is a dll missing however I cannot seem to find out which one. I copied the entire application over to the new website I created in IIS7.
I also saw some posts on the net about needing the dll msvcr71.dll in the system32 and syswow64 folders so I tried that, however it didn't work.
Could there be an issue with Windows Server 2008 R2 being a 64bit OS?
Thanks for any help in advance.
More detail from the application logs:
at System.Web.Configuration.CompilationSection.LoadAssemblyHelper(String assemblyName, Boolean starDirective) at System.Web.Configuration.CompilationSection.LoadAllAssembliesFromAppDomainBinDirectory() at System.Web.Configuration.CompilationSection.LoadAssembly(AssemblyInfo ai) at System.Web.Compilation.BuildManager.GetReferencedAssemblies(CompilationSection compConfig) at System.Web.Compilation.WebDirectoryBatchCompiler..ctor(VirtualDirectory vdir) at System.Web.Compilation.BuildManager.BatchCompile开发者_开发技巧WebDirectoryInternal(VirtualDirectory vdir, Boolean ignoreErrors) at 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.GetVPathBuildResultWithNoAssert(HttpContext context, VirtualPath virtualPath, Boolean noBuild, Boolean allowCrossApp, Boolean allowBuildInPrecompile) at System.Web.Compilation.BuildManager.GetVirtualPathObjectFactory(VirtualPath virtualPath, HttpContext context, Boolean allowCrossApp, Boolean noAssert) at System.Web.Compilation.BuildManager.CreateInstanceFromVirtualPath(VirtualPath virtualPath, Type requiredBaseType, HttpContext context, Boolean allowCrossApp, Boolean noAssert) at System.Web.UI.PageHandlerFactory.GetHandlerHelper(HttpContext context, String requestType, VirtualPath virtualPath, String physicalPath) at 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.HttpApplication.IExecutionStep.Execute() at System.Web.HttpApplication.ExecuteStep(IExecutionStep step, Boolean& completedSynchronously)
EDIT:
Here is more information about the IIS configuration:
I have a main website setup on an apppool set in classic mode - I also set it to run 32bit applications. I put just a simple test.aspx file inside that folder and it works fine. I then have a subdirectory which actually holds the application I am trying to migrate. I added another test.aspx file in there and I can navigate to it fine.
When I go to the subdirectory and make it an application directory the test.aspx file no longer works and I get the error above.
I hope this will shed more light on my issue.
I Figured out my own issue.
There is a DLL NTidy.dll in the bin folder.
This dll required the following dlls to be in the system32 folder:
- msvcp71d.dll ( Microsoft C++ Runtime Library )
- msvcp71.dll ( Microsoft C++ Runtime Library )
- msvcr71d.dll ( Microsoft C Runtime Library )
- msvcr71.dll ( Microsoft C Runtime Library )
Once I added those dlls the application began to work.
Thanks
精彩评论