ASP.NET Tab Missing


A common issue we see customers having is after installing ASP.NET 2.0, the ASP.NET Tab is missing from IIS.

This tab is used for setting the version of ASP.NET and a lot of other things.

aspnettab

When this tab is missing, it can be rather difficult to get it to appear.  So we now have a way to fix this quickly and easily.  Just download the file from this link and follow the steps below:

asptabtest.zip

This tool will run and fix the problem and get the tab to appear properly.  The steps to run this tool are:

 

  1. Close the IIS Management Console (inetmgr) and *any* other open MMCs.
  2. Run the asptabtest.vbs. It will check various known issues, correct some of them, and write results to a log file. Use the output to determine whether the issue is resolved, and if not, what steps to take next.
  3. Also note that after making any corrective changes to COM/DCOM settings, specifically DCOM security settings, make sure to either terminate (kill) ****ALL**** dllhost.exe processes, OR reboot the computer ****BEFORE**** testing again. Otherwise you may have well ‘fixed’ the problem, but a latent dllhost will prevent things from working. This is seen consistently when DCOM permissions were the problem.

Below is the output log of a working machine to give you an idea of the things it checks:

Bellow is what the output log of a working machine will look like... It also shows the different things the script checks. 
PASS: The value of Enable32BitAppOnWin64 in metabase is set to: False

PASS: The current value of Restrict_Run is: 0

PASS: Successfully registered mmcaspext.dll 

PASS: Successfully registered AspNetMMC 
Microsoft (R) .NET Framework Assembly Registration Utility 2.0.50727.1433
Copyright (C) Microsoft Corporation 1998-2004. All rights reserved.

Types registered successfully
Assembly exported to 'C:\WINDOWS\Microsoft.NET\Framework\v2.0.50727\AspNetMMCExt.tlb', and the type library was registered successfully

PASS: Successfully registered Assembly 

Running aspmantst.exe to test the ASP.NET Tab snap-in
Attempting to create the object as CLSCTX_LOCAL_SERVER.
Object created. Attempting to call method.
Method succeded. Result:
1.1.4322.0,C:\WINDOWS\Microsoft.NET\Framework\v1.1.4322\aspnet_isapi.dll,2.0.50727.0,c:\WINDOWS\Microsoft.NET\Framework\v2.0.50727\aspnet_isapi.dll

Attempting to create the object as CLSCTX_REMOTE_SERVER to IIS6EN1.
Object created. Attempting to call method.
Method succeded. Result:
1.1.4322.0,C:\WINDOWS\Microsoft.NET\Framework\v1.1.4322\aspnet_isapi.dll,2.0.50727.0,c:\WINDOWS\Microsoft.NET\Framework\v2.0.50727\aspnet_isapi.dll

Attempting to create the object as CLSCTX_INPROC_SERVER.
Object created. Attempting to call method.
Method succeded. Result:
1.1.4322.0,C:\WINDOWS\Microsoft.NET\Framework\v1.1.4322\aspnet_isapi.dll,2.0.50727.0,c:\WINDOWS\Microsoft.NET\Framework\v2.0.50727\aspnet_isapi.dll

Special thanks to Jeremy and Vandana for creating the tool.

kick it on DotNetKicks.com

Comments (65)

  1. You’ve been kicked (a good thing) – Trackback from DotNetKicks.com

  2. One of the reasons the tab disappears is if you install VMWare on a 32 bit windows version. VMware actually tries to treat IIS as running on 64 bits, and adds a key ‘Enable32BItAppOnWin64’ in the IIS metabase, and set is to true. This will cause the ASP.NET tab to disappear. See this blogpost for more info: http://weblogs.asp.net/plip/archive/2006/05/25/Where_2700_s-the-ASP.NET-Tab-in-IIS_3F00_-It_2700_s-Missing_2100_-I_2700_ve-installed-.NET-2.0-_2E002E002E00_.aspx

  3. Erik,

    That is a great point.  Thanks for pointing out another situation where this could happen.

  4. gOODiDEA.NET says:

    .NET ASP.NET 应用程序的扩展策略 Web Adobe AIR for JavaScript Developers Pocketguide Are you sure your unload handler

  5. gOODiDEA says:

    .NETASP.NET应用程序的扩展策略WebAdobeAIRforJavaScriptDevelopersPocketguideAreyousureyourun…

  6. Franklin says:

    Thank you for this.  It fixed my issue

  7. Franklin, really glad to hear it.

  8. A common issue we see customers having is after installing ASP.NET 2.0, the ASP.NET Tab is missing from

  9. Remember this problem ? Well, Tom (and Jeremy and Vandana) has a solution     Carlo Quote of

  10. PROBLEM DESCRIPTION =================== On a Windows 2003 64bit machine with both .NET Framework 1.1

  11. Learning To Fly says:

    Thanks for this. It saved me a system rebuild. The Enable32BitAppOnWin64 metabase value is non-existent on my PC, so the script died on line 41. I removed the whole section responsible for checking that metabase and re-ran, and it worked fine. It pointed out my registry permissions problem, and once I fixed that, the tab appeared on my PC.

  12. Learning,

    I’m really glad it worked for you.  Thanks for letting me know about the Enable32BitAppOnWin64 check.

  13. satpal gahir says:

    didnt work for me i think:

    FAIL: Registering Assembly failed with exit code: 100

  14. Satpal,

    Not sure…

    Now, the script calls RegAsm to register the assembly… If/when RegAsm fails, then you basically have to troubleshoot RegAsm failing. 100 is the exit code, but may not the actual, root cause win32 error code that RegAsm failed with. I have no idea if RegAsm sets the exit code to actual failing code or not. It’s just the exit code returned by the exe when we called it from the script. But we do also log any console output. Did you have any textual output from the output file from RegAsm that says what was going on?

    As for the script "working" or not, it’s doing its job… The script identifies common known failure causes, and also, as a part of covering the other bases, calls some registration stuff, like RegAsm, regsvr32, etc… which would normally work, but in the case they fail, they would indicate why it was probably broken to start with. So, if one of these calls fails, it will report the error code (and log anything written to the console by the app), but it doesn’t in turn start diagnosing why the registration program failed. In other words, it doesn’t have logic to parse the text output and/or use the exit code against a database of all the reasons why RegAsm might fail to tell you what’s happening. In fact, I haven’t had a case where RegAsm failed, so I don’t even have a handful of ‘known’ causes that we could check against.

    In short, run RegAsm manually, using the command line from the script, and troubleshoot that as its own issue, since that’s probably root cause, or closely related to it.

  15. Vi è mai capitato che nella console di amministrazione di IIS per una certa web application sparisse

  16. Zoya V. says:

    I got the following messages in my asptabtest_log.txt and am not sure how to solve them:

    Running aspmantst.exe to test the ASP.NET Tab snap-in

    Attempting to create the object as CLSCTX_LOCAL_SERVER.

    Create failed. hr: 80040154. QIhr: 80040154. GLE: 1008

    Attempting to create the object as CLSCTX_REMOTE_SERVER to BUSCOEUS.

    Create failed. hr: 80040154. QIhr: 80040154. GLE: 1008

    Any help would be greately appreciated!

  17. Zoya,

    I’ll check on this and let you know.

  18. Rich says:

    I get the same thing – any help would be appreciated.

    Thanks

  19. Zoya and Rich,

    REGDB_E_CLASSNOTREG. LOCAL_SERVER is going to use DCOM. Does the CLS_CTX_INPROC_SERVER work or fail?

    Make sure you have the right version registered (64/32). The script should have done this for us, so I’m not sure why it would show not registered. Might want to run the registration steps manually and verify output.

  20. Rich says:

    If failed

    “Create failed. hr: 80070002 IIhr:80070002. GLE: 0

    Everything above that Passed except like

    “Learning To Fly” I had to remove the section that starts:GetObject(“IIS://LocalHost/WsSVC/AppPools”)

    I get a failure on GetObject(“IIS://LocalHost/W3SVC/AppPools”)

    “The System cannot find the specified path”

  21. Rich says:

    I gave the wrong code above.

    For CLSCTX_INPROC_SERVER it failed with 80131040

  22. Rich says:

    Not sure if this will give you any helpful information but if I go to a machine with .NET installed and a working IIS and connect back to my machine in IIS the ASP.NET tab is there, but completely empty.

  23. Taylan says:

    I had the same errors with Zoya. But a restart solved the problem and now I have the ASP.Net tab. Thanks to Tom.

  24. Pierz says:

    Arrggh! I ran this on Windows Server 2003 (Virtual Server) and I got the ASP.NET tab, but now none of my websites run – “SERVICE UNAVAILABLE”.

    Error message in the event log:

    ISAPI Filter ‘C:Program Files (x86)ParallelsPleskisapiisapi_redirect.dll’ could not be loaded due to a configuration problem. The current configuration only supports loading images built for a AMD64 processor architecture. The data field contains the error number. To learn more about this issue, including how to troubleshooting this kind of processor architecture mismatch error, see http://go.microsoft.com/fwlink/?LinkId=29349.

    HELP! My websites are DEAD and I have no idea how to fix, because I have no restore function on the VPS.

  25. Pierz,

    This is complaining because you are trying to load a 32-bit filter and the web server is running in 64-bit mode.  So either you need to unload this filter, or change your web server to run in 32-bit mode.

  26. Bill says:

    Thanks for this tool, but I get these errors:

    C:downloadtoolsaspmantst.exe

    Attempting to create the object as CLSCTX_LOCAL_SERVER.

    Create failed. hr: 80070002. QIhr: 80070002. GLE: 1008

    Attempting to create the object as CLSCTX_REMOTE_SERVER to USBB-UITSALES.

    Create failed. hr: 80070002. QIhr: 80070002. GLE: 0

    Attempting to create the object as CLSCTX_INPROC_SERVER.

    Create failed. hr: 80070002. QIhr: 80070002. GLE: 0

    rebooted and tried again, but same error.

    This is Server 2003 Enterprise Edition Service Pack 1.

    Previously with framework 2.0 the tab was showing.  But removed the .net framework 2.0 and installed 3.5 which has loaded 2.0 sp1, 3.0 sp1 and 3.5.

  27. Bill,

    Try running this manually and see where it errors out.  Maybe that will help.  That error is:

    The system cannot find the file specified.

  28. Rob says:

    Tom,

    I was just looking at your reply to Bill and was wondering what you were referring to as far as "running manually" I’m getting the exact same error as Bill. Thanks!!

  29. Rob and Bill,

    Try running filemon at the same time as the tool and see what file we cannot find.  That should help.  My thinking is that it is the aspmmcext.dll file.  And maybe uninstalling 2.0 caused that to happen.  You can get filemon from:

    http://technet.microsoft.com/en-us/sysinternals/bb896642.aspx

  30. Pierz says:

    Running this script has caused me serious problems on our virtual server – my own fault for not backing up before running a script that makes diect writes to the registry. I thought that I’d fixed it with that MS kb article, but I’ve found that Plesk is not working any more, and there are problems with one of the websites as well. These erros all appear to relate to the fact that our server is 64 bit (Windows 2003). Running the 32-bit version of ASP.NET solved some problems, but PHP is falling over. Can you provide an outline of steps to take to reverse changes made by the script? I have already unregistered the ASPNET snap-in dll (no ASPNET tab any more, but that’s the least of my problems now). If I can’t sort this out soon, I may be forced to wipe clean and start again, which will cost lots of time and $$…

  31. Bill says:

    Tom, looks like the file you tried to load is missing.  thanks.

  32. Bill says:

    Looks like it doesn’t find:

    <user>Application DataMicrosoftCLR Security Configv2.0.50727.42security.config

    What’s wierd is that add/remove pgms shows .net framework 2.0 sp1 (187MB), 3.0 sp1 (245MB) and 3.5 (25MB), but I do not find any folders under <user>Application DataMicrosoftCLR Security Config

    created when I loaded 3.5.  in fact I do not find security.config in any folder newer than 2006 – v2.0.50215.44

    http://www.microsoft.com/downloads/details.aspx?FamilyId=333325FD-AE52-4E35-B531-508D977D32A6&displaylang=en

  33. Bill says:

    I see

    C:WINDOWSMicrosoft.NETFrameworkv2.0.50727

    C:WINDOWSMicrosoft.NETFrameworkv3.0

    C:WINDOWSMicrosoft.NETFrameworkv3.5

    but the corresponding ..Application DataMicrosoftCLR Security Config

    files were not added

  34. Pierz, do you have the asptabtest_log.txt? Did it show any errors? Did it run all registrations?

    The short answer for backing out the changes is:

    Running "regsvr32 /u mmcaspext.dll" and "regasm aspnetmmcext.dll /tlb:AspNetMmcExt.tlb /unregister" and setting the Enable32BitAppOnWin64 metabase property to what you need.

    Bellow is a list of things the script does and some details on each. I hope this helps.

    The only two registry keys that the script directly writes to is:

    HKEY_CURRENT_USERSoftwarePoliciesMicrosoftMmc{fedb2179-2335-48f1-aa28-5cda35a2b36d}Restrict_Run

    and

    HKEY_LOCAL_MACHINESOFTWAREMicrosoftMMCSnapIns{fedb2179-2335-48f1-aa28-5cda35a2b36d}About

    The first key is used by the MMC to determine is a given snap-in or snap-in extension is allowed to run. The guid is specifically for the asp.net tab extension. It only modifys this value if the key/value existed in the first place. All this will do, if you set it back to 1 (assumming it existed in the first place), is tell MMC not to attempt to load the snap-in extension.

    The second key is just the IID of the "About" dialog for asp.net tab extension. This only affects when you are in author mode and you go to the list of loaded extensions, highlight one, and want to see the "about" information. Original versions of mmcaspext.dll would write the wrong guid here, when you call regsvr32 on them, so the script just re-writes the guid that the 2.0 setup puts there on framework install. Unregistering the mmcaspext.dll, which you already did, should have removed this key anyway.

    The other setting that the script directly changes, after prompting first, is the Enable32BitAppOnWin64 metabase property. If this is set to true the tab won’t show up no matter what. If you need it set to true, then that’s fine, but you won’t see the tab.

    Besides those things, the script calls registration methods from 3 framework components. regsvr32 on mmcaspext.dll, regasm on AspNetMmcExt.dll, and rundll32 on webengine.dll. The script checks to see if you have a Framework64 directory and if you do it runs them out of there, else it runs them out of the Framework directory.

    mmcaspext.dll is a native MMC snap-in extension COM object. It’s what actually gets loaded by the MMC. It checks the Enable32BitAppOnWin64 metabase property among other things, and decides whether to instantiate the AspNetMmcExt component or not. It provides the GUI interface, and delgates all actual configuration reads/writes to the AspNetMmcExt component. As you’ve already done, running regsvr32 /u on it would back this change out. Just make sure that you run it on the right one (64/32), or just run it on both.

    AspNetMmcExt.dll is a managed assebly exposed via COM interop and registered to run in its own dllhost.exe surragte process. This is so that there are no framework version conflicts for any other managed component that may be running in the MMC process. regasm.exe is used to register COM interop assemblies. One of the things that is needed by the snap-in extension is the registered type library. You can unregister the assembly by running "regasm aspnetmmcext.dll /tlb:AspNetMmcExt.tlb /unregister". Again, from the right folder, which should be Framework64… in your case.

    webengine.dll is, of course, the main asp.net ISAPI engine dll. Among its exported APIs are some used by setup. One is RegisterAspNetMMC. This is what the setup program calls instead of calling mmcaspext.dll and aspnetmmcext.dll directly. This routine manually sets the registration keys that calling regsvr32 on mmcaspext.dll does, and then it calls "regasm AspNetMmcExt.dll /tld:AspNetMmcExt.tlb". That is all this does. The script calls this just as a shotgun attempt to get things registered. There’s nothing else that routine does.

    So, to summarize, you can back out the changes by running "regsvr32 /u mmcaspext.dll" and "regasm aspnetmmcext.dll /tlb:AspNetMmcExt.tlb /unregister" and setting the Enable32BitAppOnWin64 metabase property to what you need.

  35. Pierz says:

    Thank you Tom,

    I appreciate the time you’ve taken to explain all this. The only bit I didn’t know how to do was the unregistering of the type library. I have no idea how the script caused such a meltdown – I got Plesk to work again by assigning it to Apache and then back to IIS. It seems odd that Plesk was even affected, given that it is PHP-driven… Anyways, the ship is righted, we sail on! Thanks again – let it be a cautionary tale – always back up before running something you don’t understand… 🙁

  36. Bill says:

    fyi, the 3.5 install is consistent.  on XP, it does not create the CLR Security folders either.

  37. Chuck says:

    Tom

    Trying to find the attachment (file) to this blog, unable to find a link

  38. Chuck,

    Look for asptabtest.zip just below the first image.

  39. Bill says:

    Tom,

    is it a bug with the 3.5 framework that it does not create the CLR folders or is this the new approach?  Do you plan to update asptabtest to include this scenario?  

    thanks, Bill

  40. Bill,

    If you mean, like why 3.5 doesn’t have mscorwks and things like that in it, then take a look at:

    http://blogs.msdn.com/tom/archive/2008/01/23/net-framework-versions-and-sos-dll.aspx

  41. Bill says:

    Tom,

    Is it possible the CLR was removed when I removed .net framework 2.0?  3.5 includes 2.0 sp1 so I thought it would be sufficient.  I search for CLR in MS Downloads but haven’t found it separately.  Windows update for server 2003 hasn’t detected it missing or give me an update to load it.  How can I reload the CLR?  

    Could asptabtest give a warning when it doesn’t find <user>Application DataMicrosoftCLR Security Configv2.0.50727.42security.config  that the CLR is missing?

    thanks, Bill

  42. Bill,

    So do you have a %windows%microsoft.netframeworkv2.0.50727 folder at all now?  That would be what to check for.

  43. Scott says:

    Thank you this fixed my problem. I had a critical server down and thanks to you it is back up.

  44. Bill says:

    yes, we have C:WINDOWSMicrosoft.NETFrameworkv2.0.50727

    When I ran filemon asptabtest appeared to error when tried to access

    <user>Application DataMicrosoftCLR Security Configv2.0.50727.42security.config

  45. Andy Tulip says:

    There is no (obvious) attachment to this post!!!!!

  46. Bill says:

    Tom,

    do you think it is a bug in the 3.5 framework install that it doesn’t include

    <user>Application DataMicrosoftCLR Security Configv2.0.50727.42security.config

    or should asptabtest be modified to not error when it doesn’t find that file?

    thanks, Bill

  47. Bill says:

    uninstalled 3.5 and the 2.0/3.0 sp2’s, installed 2.0 – similar errors, but the procmon doesn’t show file errors that I can find.  can I send you the procmon log file?  you can send me an email to use at billzmail-temp at yahoo dot com. thank you.

    PASS: The value of Enable32BitAppOnWin64 in metabase is set to: False

    PASS: The current value of Restrict_Run is: 0

    PASS: Successfully registered mmcaspext.dll

    PASS: Successfully registered AspNetMMC

    Microsoft (R) .NET Framework Assembly Registration Utility 2.0.50727.42

    Copyright (C) Microsoft Corporation 1998-2004.  All rights reserved.

    Types registered successfully

    Assembly exported to ‘C:WINDOWSMicrosoft.NETFrameworkv2.0.50727AspNetMMCExt.tlb’, and the type library was registered successfully

    PASS: Successfully registered Assembly

    Running aspmantst.exe to test the ASP.NET Tab snap-in

    Attempting to create the object as CLSCTX_LOCAL_SERVER.

    Create failed. hr: 80070002. QIhr: 80070002. GLE: 1008

    Attempting to create the object as CLSCTX_REMOTE_SERVER to USBB-UITSALES.

    Create failed. hr: 80070002. QIhr: 80070002. GLE: 0

    Attempting to create the object as CLSCTX_INPROC_SERVER.

    Create failed. hr: 80070002. QIhr: 80070002. GLE: 0

  48. Blake says:

    I had a problem with missing ASP.Net Tab.  Check Add Standalone snap-ins.  If IIS is missing, run regsvr32 %windir%system32inetsrvinetmgr.dll

    That did it for me

  49. Sanjeev Sircar says:

    Please send me a copy of asptabtest.vbs.

    my email id is sanjeev.sircar@credit-suisse.com

  50. Tony says:

    Whenver i try to regsiter the type library with this command:

    regasm aspnetmmcext.dll /tlb:AspNetMmcExt.tlb /register

    I get a CLR: 80004005 error

    If i try to unregister i get the same error.

    Any thoughts as to what is causing the typelib to not register….??

    Thx

  51. Rich says:

    Finally got mine back  – I was getting the same thing as Bill above, but saw this post:

    http://www.eggheadcafe.com/forumpost.aspx?topicid=6&forumpostid=20592

    and for me, there was a "non-2.0.0.0" entry here:

    HKEY_CLASSES_ROOTCLSID{FD5CD8B1-6FE0-44F3-BBFB-65E3655B096E} InprocServer32

    I deleted it, ran aspmantst.exe and everything passed – opened up IIS and the TAB was backed.

  52. Krish says:

    I ran the script on my XP Service Pack 2. Had to remove the 64bit check bit since I got the line 41 error.

    Following is the output of the log file

    PASS: The current value of Restrict_Run is: 0

    PASS: Successfully registered mmcaspext.dll

    PASS: Successfully registered AspNetMMC

    FAIL: Registering Assembly failed with exit code: -2146232576

    complains that – To run this application, you first must install one of the following versions of .NET Framework: v2.05.727

    Contact your application publisher for instructions about obtaining the appropriate version of the .NET framework

    The error comes on this line of the script

    Set oExec = WshShell.Exec(strFrameworkFolder & "regasm.exe " & strFrameworkFolder & "AspNetMmcExt.dll /tlb:AspNetMMCExt.tlb")

    Has anybody else encountered a similar issue? Were there able to resolve it?

    PS: Last month I was forced to install Framework 3.0 as an update since it kept on reminding me and had to install it (company policy – keep up with updates). Was unhappy with Microsoft as they force this onto my machine

  53. Dan says:

    I applied the VBS script, and I got the ASP.NET tab back, but now all sites on the server went down, with the application pools reporting "Unspecified error!"

    Help!

  54. Dan,

    Have you checked the asp.net tab to see what version of .NET it is running under?  Maybe they switched and that is causing the problem.

  55. Ari says:

    Tom, I have been following Bill and Rich since their issue seems to be closest to mine… I run the tool and everything works except:

    Running aspmantst.exe to test the ASP.NET Tab snap-in

    Attempting to create the object as CLSCTX_LOCAL_SERVER.

    Create failed. hr: 80070002. QIhr: 80070002. GLE: 0

    Attempting to create the object as CLSCTX_REMOTE_SERVER to WR-DEV-02.

    Create failed. hr: 80070002. QIhr: 80070002. GLE: 1008

    —————————————————–

    Those are the only failures in the whole set of checks in the vbs script. I didn’t include the CLSCTX_INPROC_SERVER object results because it was created.

    I did look into the Application DataMicrosoftCLR Security Config folder and folder v1.1.4322 shows a security.config file while folder v2.0.50727.42 is empty.  

    My Microsoft.NET directory shows folders: v1.1.4322, v2.0.50727, v3.0 and v3.5. All of which are populated with what I would think appropriate.

  56. Rostler says:

    Why can’t I find the attachment. I want to download asptabtest.vbs, but can’t find it to download.

  57. Rostler, you should be able to get it from the link above.  I just tested it.  It is:

    http://cid-cc604c70d3f72cfd.skydrive.live.com/self.aspx/ASP.NET%20Tab%20Missing/asptabtest.zip

  58. Ase says:

    First great tool… In mi case the problem is calling the function not creating the object…seems like a permissions issue but i dont find how to solve it :S

    Running aspmantst.exe to test the ASP.NET Tab snap-in

    Attempting to create the object as CLSCTX_LOCAL_SERVER.

    Object created. Attempting to call method.

    Method failed. hr: 80070005. GLE: 1008

    Attempting to create the object as CLSCTX_REMOTE_SERVER to SERVERS.

    Object created. Attempting to call method.

    Method failed. hr: 80070005. GLE: 0

  59. Altin says:

    Thanks a lot, it fixed the tab problem

  60. Vishal Shinde says:

    after running this all my websites is giving service unavailable error and all appliction pools are crashin.. is there any way to roll back this.am using a 64 bit os with windows 2003 server..

  61. Lucas says:

    I need to come out the corrector, this where to download it the link?

  62. Kayla says:

    Dude. the attachment is completely gone now.

  63. Sorry that the tool is gone now.  I will see if it is anywhere else and update the post.

  64. Updated the link to the file, sorry about that.

Skip to main content