2

I've written a COM interop enabled class-library in C# using .Net 3.5. The object is meant to provide some utility functions for classic ASP pages. I've written a test.asp page which instanciates the desired object and calls its methods. Works fine on my machine.

On a different machine (Windows Server 2003 - Standard Edition) it doesn't work eventhough the assembly is registered with regasm correctly. I've checked the regedit and afaik it looks ok.

The error I'm getting is "ASP 0177" (error code), "8000ffff; Server.CreateObject-Fehler" (error description) which translates to Server.CreateObject-Error.

Btw. the assembly is signed and doesn't have any other custom build assemblies as dependencies (just the system stuff).

Did anyone experience something similar?

Mats
  • 13,840
  • 29
  • 73
  • 106
  • What are you trying to do here. Creating an object of dot net class from your ASP page??? With server.createobject.. Well your assembly is first of all not a com object. Secondly if you want to create an object then you only need to create it using a simple call to its constructor from VB 6 code by adding a reference to that assembly. – S M Kamran Oct 05 '09 at 09:30
  • What kind of setup do you have in your development environment? – Rodrigo Oct 05 '09 at 09:46
  • @Matthias: Does the following sample work for you: http://www.codeproject.com/KB/COM/nettocom.aspx ? – Dirk Vollmar Oct 05 '09 at 09:48

3 Answers3

6

Granting the IUSR user (or whoever your IIS user is) read-access to the following Registry Key did the job for me and fixed the Problem.

HKEY_USERS\S-1-5-20\Software\Microsoft\Windows\CurrentVersion\Internet Settings\Zones
Mats
  • 13,840
  • 29
  • 73
  • 106
2

I think it's a security issue. It seems you had developed and tested the component in your own pc, which have a lot of differences compared to a server (having visual studio installed by example).


EDIT: Please take a look at this Microsoft "Hotfixes a hotfix":

Rodrigo
  • 4,162
  • 3
  • 29
  • 47
  • Thank you Rodrigo! That looks promising. I'll test it in the evening and post the result then. – Mats Oct 05 '09 at 10:22
  • It actually wasn't necessary to uninstall the KBFix mentioned in your links. Neither did I install the Hotfix-Fix. Thanks anyway for pointing me in the right direction. – Mats Oct 07 '09 at 08:23
1
  • Locate and then click the following registry subkey: HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Internet Explorer\MAIN\ FeatureControl\FEATURE_IGNORE_ZONES_INITIALIZATION_FAILURE_KB945701
  • Note If the FEATURE_IGNORE_ZONES_INITIALIZATION_FAILURE_KB945701 subkey does not exist, you must manually create it. If you're using a 64 bit OS, you may need to use HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Microsoft\Internet Explorer\MAIN\ FeatureControl\FEATURE_IGNORE_ZONES_INITIALIZATION_FAILURE_KB945701 instead
  • Right-click FEATURE_IGNORE_ZONES_INITIALIZATION_FAILURE_KB945701, point to New, and then click DWORD Value
  • Type w3wp.exe to name the new registry entry, and then press ENTER.
  • Right-click w3wp.exe, and then click Modify.
  • In the Value data box, type 1, and then click OK.

After setting this registry key, a simple app pool restart will apply the change. No longer will your .NET COM components randomly stop working with no real solution except shuffling application pools!

renanleandrof
  • 5,822
  • 8
  • 40
  • 57