Wednesday, July 14, 2010

Failed to access IIS metabase ERROR

Got to be one of the most fustrating errors to get after you have spent over a week developing a ASP.NET (2.0) web applications.  So I searched the greatness that is the internet and found many a fix...  sorry, little sarcasm there...

Turns out, installing IIS on an XP sp3 Pro computer AFTER you have been developing is a BAD THING!  I read and read and figured after 5 sites, maybe I need to basically start over.  THANK YOU Amit S Patriwala!  His blog post was the answer to my issue.  I will recap...

If you get this error, follow the steps below:
  1. Stop panicing
  2. Run the following in a CMD window:   C:\windows\microsoft.net\framework\v2.0.50727\aspnet_regiis.exe -ua  This uninstalla ALL ASP.NET framework.
  3. Run C:\windows\microsoft.net\framework\v2.0.50727\aspnet_regiis.exe –ga ASPNET next.  This tells you what the rights are for the ASPNET user.
  4. Next, run C:\windows\microsoft.net\framework\v2.0.50727\aspnet_regiis.exe -iru This is what fixed my issue!
  5. Run C:\windows\microsoft.net\framework\v2.0.50727\aspnet_regiis.exe –ga ASPNET to verify
Those 5 steps solved a two day issue of my site not working on the XP computer running IIS 5.1. 
Hope this helps someone else!


The Power of aspnet_regiis.exe:
Administration utility (2.0.50727) to install and uninstall ASP.NET on the local machine.

Copyright (c) Microsoft Corporation. All rights reserved.
-- ASP.NET REGISTRATION OPTIONS --
-i                  Install this version of ASP.NET and update scriptmaps at the IIS metabase root and for all scriptmaps below the root. Existing scriptmaps of lower version are upgraded to this version.
-ir                 Install this version of ASP.NET, register only. Do not update scriptmaps in IIS.
-iru               Install this version of ASP.NET. If there are any existing applications that uses ASP.NET, it will not update scriptmaps in IIS.
-enable         When -enable is specified with -i, -ir or -r, ASP.NET will be enabled in the IIS security console (IIS 6.0 or later).
-disable        When -disable is specified with -i, -ir or -r, ASP.NET will be disabled in the IIS security console (IIS 6.0 or later).
-s      Install scriptmaps for this version at the specified path, recursively.
                    E.g. aspnet_regiis.exe -s W3SVC/1/ROOT/SampleApp1
-sn    Install scriptmaps for this version at the specified path, non-recursively.
-r                 Install this version of ASP.NET and update scriptmaps at the IIS metabase root and for all scriptmaps below the root. Existing scriptmaps are upgraded to this version regardless of the original versions.
-u                Uninstall this version of ASP.NET. Existing scriptmaps to this version are remapped to highest remaining version of ASP.NET installed on the machine.
-ua              Uninstall all versions of ASP.NET on the machine.
-k     Remove all scriptmaps to any version of ASP.NET from the specified path, recursively.
                   E.g. aspnet_regiis.exe -k W3SVC/1/ROOT/SampleApp1
-kn   Remove all scriptmaps to any version ASP.NET from the specified path, non-recursively.
-lv               List all versions of ASP.NET that are installed on the machine, with status and installation path.
-lk               List all the path of all IIS metabase keys where ASP.NET is scriptmapped, together with the version. Keys that inherit ASP.NET scriptmaps from a parent key will not be displayed.
-c                Install the client side scripts for this version to the aspnet_client subdirectory of each IIS site directory.
-e                Remove the client side scripts for this version from the aspnet_client subdirectory of each IIS site directory.
-ea              Remove the client side scripts for all versions from the aspnet_client subdirectory of each IIS site directory.
-ga   Grant the specified user or group access to the IIS metabase and other directories used by ASP.NET.
-- CONFIGURATION ENCRYPTION OPTIONS --

-pe section       Encrypt the configuration section. Optional arguments:
     [-prov provider] Use this provider to encrypt.
     [-app virtual-path] Encrypt at this virtual path. Virtual path must begin with a forward slash. If it is '/', then it refers to the root of the site. If -app is not specified, the root web.config will be encrypted. [-site site-name-or-ID] The site of the virtual path specified in -app. If not specified, the default web site will be used.    
     [-location sub-path] Location sub path. [-pkm] Encrypt/decrypt the machine.config instead of web.config.
-pd section       Decrypt the configuration section. Optional arguments:
     [-app virtual-path] Decrypt at this virtual path. Virtual path must begin with a forward slash. If it is '/', then it refers to the root of the site. If -app is not specified, the root web.config will be decrypted.
     [-site site-name-or-ID] The site of the virtual path specified in -app. If not specified, the default web site will be used.
     [-location sub-path] Location sub path.
     [-pkm] Encrypt/decrypt the machine.config instead of web.config.
-pef section web-app-physical-dir
     Encrypt the configuration section. Optional arguments:
          [-prov provider] Use this provider to encrypt.
-pdf section web-app-physical-dir
     Decrypt the configuration section.
-pc container      Create an RSA keypair in ContainerName. Optional arguments:
     [-size key-size] Key-size. Default is 1024.
     [-pku] User container instead of machine container.
     [-exp] Make the private keys exportable.
     [-csp provider] Csp Provider to use.
-pz container      Delete the ContainerName. Optional arguments:
     [-pku] User container instead of machine container.
-pi container file   Import an RSA keypair from the Xml file. Optional arguments:
     [-pku] User container instead of machine container.
     [-exp] Create exportable keys.
     [-csp provider] Csp Provider to use.
-px container file Export an RSA keypair to the Xml file. Optional arguments:
     [-pku] User container instead of machine container.
     [-pri] Include private keys.
     [-csp provider] Csp Provider to use.
-pa container account
     Add access for the account to the container. Arguments:
          [-pku] User container instead of machine container.
          [-csp provider] Csp Provider to use.
          [-full] Add full access (default is Read access).
-pr container account
     Remove access for the account from the container.  Arguments:
          [-pku] User container instead of machine container.
          [-csp provider] Csp Provider to use.

-- CONFIGURATION REMOTE ACCESS OPTIONS --
-config+ Enable remote access of configuration.
-config- Disable remote access of configuration.

No comments:

Post a Comment