dhrhelp
asked on
Migrate web sites from IIS6 to IIS8
I am attempting to migrate several websites from a Win 2003 X86 system running IIS6 to Win 2012 R2 X64 system running IIS8. At this point in time I am only concerned with running ALL websites in classic ASP mode. I believe I have all of the correct roles/features installed in order to support classic mode.
I have migrated six sites over to the new 2012 server and I have only one working so far. Switching between Classic 2.0 and 4.0 modes produces several different errors on various sites.
-Error 500
-Error 403 Access forbidden
-Could not load file or assembly 'App_Browsers' or one of its dependencies. This assembly is built by a runtime newer than the currently loaded runtime and cannot be loaded.
I have experimented with "WebDeploy" using a ZIP package, but it doesn't appear to resolve any of the various errors I am receiving (Noted above). I also tried a tool called "IMET" from the MS IIS.net website and creates the website/AppPools etc, but still produces the same set of errors (Noted above)
Has anyone had success with migrating websites between IIS6 and IIS8 (Classic mode)? Any tips are truly appreciated.
I have migrated six sites over to the new 2012 server and I have only one working so far. Switching between Classic 2.0 and 4.0 modes produces several different errors on various sites.
-Error 500
-Error 403 Access forbidden
-Could not load file or assembly 'App_Browsers' or one of its dependencies. This assembly is built by a runtime newer than the currently loaded runtime and cannot be loaded.
I have experimented with "WebDeploy" using a ZIP package, but it doesn't appear to resolve any of the various errors I am receiving (Noted above). I also tried a tool called "IMET" from the MS IIS.net website and creates the website/AppPools etc, but still produces the same set of errors (Noted above)
Has anyone had success with migrating websites between IIS6 and IIS8 (Classic mode)? Any tips are truly appreciated.
ASKER
Thanks for the quick response.
I have changed the AppPool to use "Network Service" and edited the basic settings of the site to use "Application Pass-thru Authentication". I have explicitly applied NTFS permissions for the "Network Service" group to the root of the IIS directory where the websites resides with modify permissions. Enabled ASP parent paths as well.
By turning off friendly errors, do you mean enabling ASP - > Debugging Properties -> Send Errors to Browser? If so, this is set to "true".
Below is one of the specific errors I am getting . To note, the original IIS6 site was set to ASP4.0, however I am attempting to run the site in ASP 2.0 Classic with IIS8. Changing to 4.0 classic produces an "500 - Internal server error"
Event code: 3008
Event message: A configuration error has occurred.
Event time: 9/10/2014 8:31:09 PM
Event time (UTC): 9/11/2014 12:31:09 AM
Event ID: a36f0d8f2f594ebe9268ef10ca e0af88
Event sequence: 10
Event occurrence: 3
Event detail code: 0
Application information:
Application domain: /LM/W3SVC/6/ROOT-6-1305486 8669878442 5
Trust level: Full
Application Virtual Path: /
Application Path: E:\Websites\WEBSITENAME\
Machine name: SERVER1
Process information:
Process ID: 4624
Process name: w3wp.exe
Account name: NT AUTHORITY\NETWORK SERVICE
Exception information:
Exception type: ConfigurationErrorsExcepti on
Exception message: Could not load file or assembly 'App_Browsers' or one of its dependencies. This assembly is built by a runtime newer than the currently loaded runtime and cannot be loaded.
Request information:
Request URL: http://websitename/form.aspx
Request path: / form.aspx
User host address: 10.1.1.1
User:
Is authenticated: False
Authentication Type:
Thread account name: NT AUTHORITY\NETWORK SERVICE
Thread information:
Thread ID: 8
Thread account name: NT AUTHORITY\NETWORK SERVICE
Is impersonating: True
Stack trace: at System.Web.Configuration.C ompilation Section.Lo adAssembly Helper(Str ing assemblyName, Boolean starDirective)
at System.Web.Configuration.C ompilation Section.Lo adAllAssem bliesFromA ppDomainBi nDirectory ()
at System.Web.Configuration.C ompilation Section.Lo adAssembly (AssemblyI nfo ai)
at System.Web.Compilation.Bui ldManager. GetReferen cedAssembl ies(Compil ationSecti on compConfig)
at System.Web.Compilation.Web DirectoryB atchCompil er..ctor(V irtualDire ctory vdir)
at System.Web.Compilation.Bui ldManager. BatchCompi leWebDirec toryIntern al(Virtual Directory vdir, Boolean ignoreErrors)
at System.Web.Compilation.Bui ldManager. BatchCompi leWebDirec tory(Virtu alDirector y vdir, VirtualPath virtualDir, Boolean ignoreErrors)
at System.Web.Compilation.Bui ldManager. CompileWeb File(Virtu alPath virtualPath)
at System.Web.Compilation.Bui ldManager. GetVPathBu ildResultI nternal(Vi rtualPath virtualPath, Boolean noBuild, Boolean allowCrossApp, Boolean allowBuildInPrecompile)
at System.Web.Compilation.Bui ldManager. GetVPathBu ildResultW ithNoAsser t(HttpCont ext context, VirtualPath virtualPath, Boolean noBuild, Boolean allowCrossApp, Boolean allowBuildInPrecompile)
at System.Web.Compilation.Bui ldManager. GetVirtual PathObject Factory(Vi rtualPath virtualPath, HttpContext context, Boolean allowCrossApp, Boolean noAssert)
at System.Web.Compilation.Bui ldManager. CreateInst anceFromVi rtualPath( VirtualPat h virtualPath, Type requiredBaseType, HttpContext context, Boolean allowCrossApp, Boolean noAssert)
at System.Web.UI.PageHandlerF actory.Get HandlerHel per(HttpCo ntext context, String requestType, VirtualPath virtualPath, String physicalPath)
at System.Web.UI.PageHandlerF actory.Sys tem.Web.IH ttpHandler Factory2.G etHandler( HttpContex t context, String requestType, VirtualPath virtualPath, String physicalPath)
at System.Web.HttpApplication .MapHttpHa ndler(Http Context context, String requestType, VirtualPath path, String pathTranslated, Boolean useAppConfig)
at System.Web.HttpApplication .MapHandle rExecution Step.Syste m.Web.Http Applicatio n.IExecuti onStep.Exe cute()
at System.Web.HttpApplication .ExecuteSt ep(IExecut ionStep step, Boolean& completedSynchronously)
I have changed the AppPool to use "Network Service" and edited the basic settings of the site to use "Application Pass-thru Authentication". I have explicitly applied NTFS permissions for the "Network Service" group to the root of the IIS directory where the websites resides with modify permissions. Enabled ASP parent paths as well.
By turning off friendly errors, do you mean enabling ASP - > Debugging Properties -> Send Errors to Browser? If so, this is set to "true".
Below is one of the specific errors I am getting . To note, the original IIS6 site was set to ASP4.0, however I am attempting to run the site in ASP 2.0 Classic with IIS8. Changing to 4.0 classic produces an "500 - Internal server error"
Event code: 3008
Event message: A configuration error has occurred.
Event time: 9/10/2014 8:31:09 PM
Event time (UTC): 9/11/2014 12:31:09 AM
Event ID: a36f0d8f2f594ebe9268ef10ca
Event sequence: 10
Event occurrence: 3
Event detail code: 0
Application information:
Application domain: /LM/W3SVC/6/ROOT-6-1305486
Trust level: Full
Application Virtual Path: /
Application Path: E:\Websites\WEBSITENAME\
Machine name: SERVER1
Process information:
Process ID: 4624
Process name: w3wp.exe
Account name: NT AUTHORITY\NETWORK SERVICE
Exception information:
Exception type: ConfigurationErrorsExcepti
Exception message: Could not load file or assembly 'App_Browsers' or one of its dependencies. This assembly is built by a runtime newer than the currently loaded runtime and cannot be loaded.
Request information:
Request URL: http://websitename/form.aspx
Request path: / form.aspx
User host address: 10.1.1.1
User:
Is authenticated: False
Authentication Type:
Thread account name: NT AUTHORITY\NETWORK SERVICE
Thread information:
Thread ID: 8
Thread account name: NT AUTHORITY\NETWORK SERVICE
Is impersonating: True
Stack trace: at System.Web.Configuration.C
at System.Web.Configuration.C
at System.Web.Configuration.C
at System.Web.Compilation.Bui
at System.Web.Compilation.Web
at System.Web.Compilation.Bui
at System.Web.Compilation.Bui
at System.Web.Compilation.Bui
at System.Web.Compilation.Bui
at System.Web.Compilation.Bui
at System.Web.Compilation.Bui
at System.Web.Compilation.Bui
at System.Web.UI.PageHandlerF
at System.Web.UI.PageHandlerF
at System.Web.HttpApplication
at System.Web.HttpApplication
at System.Web.HttpApplication
I seems that you need to install newer Visual Studio runtime DLLs. What version of VS was the app built with?
If you don't know, you could just install the latest VS2005, VS2008 and VS2010 runtimes.
Dan
Exception information:
Exception type: ConfigurationErrorsException
Exception message: Could not load file or assembly 'App_Browsers' or one of its dependencies. This assembly is built by a runtime newer than the currently loaded runtime and cannot be loaded.
If you don't know, you could just install the latest VS2005, VS2008 and VS2010 runtimes.
Dan
sorry for the delay, I've been sick as a dog these last few days and haven't been on the computer much...
what version of the .NET Framework do you have installed? you may need to just double click on the application pool and then change the .NET Framework to the version you have installed, or install the version you have selected.
what version of the .NET Framework do you have installed? you may need to just double click on the application pool and then change the .NET Framework to the version you have installed, or install the version you have selected.
ASKER CERTIFIED SOLUTION
membership
This solution is only available to members.
To access this solution, you must be a member of Experts Exchange.
ASKER
Trial and error lead me to believe this was the solution since it was happening to multiple websites that had the exact same issue.
You may also want to turn off friendly errors so you can get more info on what's falling. To do that, go under the ASP module in iis and look for something along the lines of "send errors to client"