Click to See Complete Forum and Search --> : ASP COMponent registration!!"


sm176811
March 25th, 2000, 08:02 AM
I have written a COMponent using Visual C++ 6.0. I used the ATL-creation-wizard provided by VC++ 6.0 to create the dll-framework and then I added in my own classes and Interfaces. When I compile the project, I compiles properly and also shows that it is registered with the system.

As a matter of fact, I can see the COMponent registered, when i view it with OLEViewer. However, when I try to create the object using asp and IIS4.0,
using Server.CreateObject("ASPComponents.compname")- where compname is the name of the interface in the component; it fails with the following error.

---------------------------------
Server object error 'ASP 0177 : 800401f3'

Server.CreateObject Failed

/MapleWML/index1.asp, line 4

Invalid class string
--------------------------------

What is the problem and how do I resolve the problem?

R Auchterlounie
March 28th, 2000, 05:31 AM
IIS/ASP default security settings are much tighter in w2k. I have found that it is necessary to manually grant read/execute permissions to the IUSR_<MachineName> user for the folders containing custom com components.

Also, the folder with the component in sometimes seems to need to be in the system path for IIS to find it - not sure why.

So far I have found the quickest & dirtiest solution which works consistently is to place all the com components in system32 and register them there, then ensure IUSR_<MachineName> has read/execute permissions on system32. Not ideal, but does at least get things working.

--
Ray Auchterlounie
Development Manager
cre8tiv / apso

Rick Leinecker
April 27th, 2000, 01:02 PM
My best guess is the you're using the wrong identifier. Here's an .rgs file from a component I wrote:

HKCR
{
Travel.SubmitOrder.1 = s 'SubmitOrder Class'
{
CLSID = s '{FFEFE131-1C16-11D4-B9FB-00105AA721BE}'
}
Travel.SubmitOrder = s 'SubmitOrder Class'
{
CLSID = s '{FFEFE131-1C16-11D4-B9FB-00105AA721BE}'
CurVer = s 'Travel.SubmitOrder.1'
}
NoRemove CLSID
{
ForceRemove {FFEFE131-1C16-11D4-B9FB-00105AA721BE} = s 'SubmitOrder Class'
{
ProgID = s 'Travel.SubmitOrder.1'
VersionIndependentProgID = s 'Travel.SubmitOrder'
ForceRemove 'Programmable'
InprocServer32 = s '%MODULE%'
{
val ThreadingModel = s 'Both'
}
'TypeLib' = s '{FFEFE121-1C16-11D4-B9FB-00105AA721BE}'
}
}
}


The identifier I use for this is Travel.SubmitOrder.1

Let me know if this helps.

gurusaturn
May 30th, 2000, 10:44 AM
Hi,
In IIS 4.0 u have lot of security restrictions , make a copy of the dll in the folder of the web application or where ur asp page is running & make necessary changes in the registry key, i.e., the path try it 'll work , but i think with iis 5 u 'll not have this problem
if u still have problems mail me.
regards
subbu
subramanians@rssoftware.co.in

bandi_sreekanth
June 16th, 2000, 10:54 AM
The problem could be one of the following:

1. You might not used the right prog-id when you create Server.CreateObject("prog-id")

2. Your personal webser did not know where to pickup your component

sol:

pls use right prog-id and check in IIS/PWS