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?

3
  • 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. Commented Oct 5, 2009 at 9:30
  • What kind of setup do you have in your development environment? Commented Oct 5, 2009 at 9:46
  • @Matthias: Does the following sample work for you: codeproject.com/KB/COM/nettocom.aspx ? Commented Oct 5, 2009 at 9:48

3 Answers 3

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
Sign up to request clarification or add additional context in comments.

1 Comment

The specific SID depends on the app pool identity; S-1-5-20 is Network Service.
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":

2 Comments

Thank you Rodrigo! That looks promising. I'll test it in the evening and post the result then.
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.
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!

Comments

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.