migrate NET 2.0 app da un server Windows 2003 / IIS6 per windows server 2008 R2 / IIS7
-
25-09-2019 - |
Domanda
Sto tentando di migrare un'applicazione .NET 2.0 da Windows Server 2003 a Windows Server 2008.
Sto ricevendo l'errore - il modulo specificato non è stato trovato. (Eccezione da HRESULT: 0x8007007E)
Sembra che ci sia una dll mancante però io non riesco a scoprire quale. Ho copiato l'intera applicazione al nuovo sito che ho creato in IIS7.
Ho anche visto alcuni messaggi su rete circa la necessità della msvcr71.dll dll nella system32 e syswow64 cartelle in modo che ho provato, ma non ha funzionato.
Potrebbe esserci un problema con Windows Server 2008 R2 essendo un sistema operativo a 64 bit?
Grazie per qualsiasi aiuto in anticipo.
Maggiori dettagli dai registri delle applicazioni:
a System.Web.Configuration.CompilationSection.LoadAssemblyHelper (String AssemblyName, booleano starDirective) a System.Web.Configuration.CompilationSection.LoadAllAssembliesFromAppDomainBinDirectory () in System.Web.Configuration.CompilationSection.LoadAssembly (AssemblyInfo AI) a System.Web .Compilation.BuildManager.GetReferencedAssemblies (CompilationSection compConfig) a System.Web.Compilation.WebDirectoryBatchCompiler..ctor (vdir VirtualDirectory) a System.Web.Compilation.BuildManager.BatchCompileWebDirectoryInternal (vDIR VirtualDirectory, booleano IgnoreErrors) a System.Web.Compilation.BuildManager .BatchCompileWebDirectory (vdir VirtualDirectory, VirtualPath VirtualDir, booleano IgnoreErrors) a System.Web.Compilation.BuildManager.CompileWebFile (VirtualPath virtualPath) a System.Web.Compilation.BuildManager.GetVPathBuildResultInternal (VirtualPath virtualPath, booleano noBuild, booleano allowCrossApp, booleano allowBuildInPrecompile) a System.Web.Compilation.BuildManager.GetVPathBui ldResultWithNoAssert (HttpContext contesto, VirtualPath virtualPath, booleano noBuild, booleano allowCrossApp, booleano allowBuildInPrecompile) a System.Web.Compilation.BuildManager.GetVirtualPathObjectFactory (VirtualPath virtualPath, HttpContext contesto, booleano allowCrossApp, booleano noAssert) a System.Web.Compilation.BuildManager.CreateInstanceFromVirtualPath (VirtualPath virtualPath, Tipo requiredBaseType, HttpContext contesto, booleano allowCrossApp, booleano noAssert) a System.Web.UI.PageHandlerFactory.GetHandlerHelper (HttpContext contesto, String RequestType, VirtualPath virtualPath, String physicalPath) a System.Web.UI.PageHandlerFactory.System. Web.IHttpHandlerFactory2.GetHandler (HttpContext contesto, String RequestType, VirtualPath virtualPath, String physicalPath) a System.Web.HttpApplication.MapHttpHandler (HttpContext contesto, String RequestType, percorso VirtualPath, String pathTranslated, booleano useAppConfig) a System.Web.HttpApplication.MapHandlerExecutionStep .System.Web.HttpAppl ication.IExecutionStep.Execute () in System.Web.HttpApplication.ExecuteStep (IExecutionStep step, Boolean & completedSynchronously)
EDIT:
Ecco ulteriori informazioni sulla configurazione di IIS:
Ho una configurazione sito principale su un insieme apppool in modalità classica - ho anche impostare l'esecuzione a 32 bit delle applicazioni. Ho messo solo un file Test.aspx semplice all'interno di quella cartella e funziona benissimo. Ho poi avuto una sottodirectory che in realtà contiene l'applicazione che sto cercando di migrare. Ho aggiunto un altro file Test.aspx in là e posso navigare ad esso bene.
Quando vado nella sottodirectory e ne fanno una directory di applicazione il file Test.aspx non funziona più ed ottengo l'errore di cui sopra.
Spero che questo possa chiarire meglio il mio problema.
Soluzione
ho capito il mio problema.
C'è una DLL NTidy.dll nella cartella bin.
Questa dll richiesto le seguenti DLL di essere nella cartella System32:
- msvcp71d.dll (Microsoft C ++ Runtime Library)
- msvcp71.dll (Microsoft C ++ Runtime Library)
- msvcr71d.dll (Microsoft C Runtime Library)
- msvcr71.dll (Microsoft C Runtime Library)
Una volta ho aggiunto quelle DLL l'applicazione ha cominciato a lavorare.
Grazie