IIS - Cannot create ActiveX component

H

Heinz K

Hello all,

I'm developing a vb.net 2.0 webservice which accesses a lotus notes
database using lotus domino api. This works fine on my local client if I
select "Use Visual Studio Development server" (on project properties).
But as soon as I select "Use IIS Web Server" I always got error messages.
One says: "Retrieving the COM class factory for component with CLSID
{29131539-2EED-1069-BF5D-00DD011186B7} failed due to the following
error: 8007000e." The CLSID is the one from "Lotus Domino Session" in my
registry.
The other error message when I deploy to an external IIS (6.0) Server
is: "Cannot create ActiveX component".

As my webservice works fine when I use the visual studio development
server, I guess my script is correct. Any ideas why it does not work on
IIS? Any registry settings? My local ASPNET-Machine account has full
access to the directory.

Many thanks in advance!!
 
P

Paul Clement

¤ Hello all,
¤
¤ I'm developing a vb.net 2.0 webservice which accesses a lotus notes
¤ database using lotus domino api. This works fine on my local client if I
¤ select "Use Visual Studio Development server" (on project properties).
¤ But as soon as I select "Use IIS Web Server" I always got error messages.
¤ One says: "Retrieving the COM class factory for component with CLSID
¤ {29131539-2EED-1069-BF5D-00DD011186B7} failed due to the following
¤ error: 8007000e." The CLSID is the one from "Lotus Domino Session" in my
¤ registry.
¤ The other error message when I deploy to an external IIS (6.0) Server
¤ is: "Cannot create ActiveX component".
¤
¤ As my webservice works fine when I use the visual studio development
¤ server, I guess my script is correct. Any ideas why it does not work on
¤ IIS? Any registry settings? My local ASPNET-Machine account has full
¤ access to the directory.

Are all of the COM components you are using in your app registered on the web server? Did you
distribute the COM interop assemblies (if any) that were created during development (should be in
your bin folder)?


Paul
~~~~
Microsoft MVP (Visual Basic)
 
H

Heinz K

Paul said:
Are all of the COM components you are using in your app registered on the web server? Did you
distribute the COM interop assemblies (if any) that were created during development (should be in
your bin folder)?

Hi Paul,

I think so. On my development client I referenced "domobj.tlb" which is
part of the Lotus Notes Program Directory. When I compile it I get a
"Înterop.Domino.dll" in my bin-directory. I then copy everything in
app-folder, including the bin-subdirectory, to the external IIS. On
external IIS, Notes is installed so I guess the COM component is
registered correct. Is there a way to check this?

Thanks!
 
I

Ian R

You need to register the COM libraries on the server. The Notes installer
doesn't correctly do this.
The one you're looking for is nlsxbe.dll in the Notes install folder on the
server.
 
H

Heinz K

Hi Ian,

yes, I already did that before (sorry I forgot to mention. I read it on
an internet page but as this was not successfull I wasn't aware that
this might be a needful information). I called "regsvr32 nlsxbe.dll" and
it says "DllRegisterServer in nlsxbe.dll succeeded, nevertheless the
ActiveX Object could still not be created.
 
P

Paul Clement

¤ Hi Ian,
¤
¤ yes, I already did that before (sorry I forgot to mention. I read it on
¤ an internet page but as this was not successfull I wasn't aware that
¤ this might be a needful information). I called "regsvr32 nlsxbe.dll" and
¤ it says "DllRegisterServer in nlsxbe.dll succeeded, nevertheless the
¤ ActiveX Object could still not be created.

Did you un register the component before re-registering?

regsvr32 -u nlsxbe.dll


Paul
~~~~
Microsoft MVP (Visual Basic)
 
I

Ian R

Does the account the IIS worker process is running under have access to the
Notes folder on the server ?
 
H

Heinz K

Hi Paul,

no, I did not do this before, but did it now. It says
"DllUnregisterServer in nlsxbe.dll succeeded". Then I registered it
again with "regsvr32 nlsxbe.dll" and it says "DllRegisterServer in
nlsxbe.dll succeeded.". Nevertheless, when I start my Webservice it
still says "Cannot create ActiveX component" :-(

By the way, I also tried what happens if I just unregister and then
start the webservice and it's the same error message "Cannot create
ActiveX component". Does this help? Many thanks for your patience!
 
H

Heinz K

Hi Ian,

I added now Full Access for local Aspnet account also for Lotus Program
directory, but still no success :-( Many thanks for your patience!
 
P

Paul Clement

¤ no, I did not do this before, but did it now. It says
¤ "DllUnregisterServer in nlsxbe.dll succeeded". Then I registered it
¤ again with "regsvr32 nlsxbe.dll" and it says "DllRegisterServer in
¤ nlsxbe.dll succeeded.". Nevertheless, when I start my Webservice it
¤ still says "Cannot create ActiveX component" :-(
¤

Did you verify that the CLSID LocalServer32 (or InprocServer32) entry in the Registry points to the
correct location of nlsxbe.dll?


Paul
~~~~
Microsoft MVP (Visual Basic)
 
P

Paul Clement

¤ Hi Paul,
¤
¤ yes, it's set to the correct filepath.
¤

Do you know whether this component requires any supporting files? I'm beginning to think that
another component is missing or not registered.

The Dependency Walker utility (http://www.dependencywalker.com/) may help identify supporting files.


Paul
~~~~
Microsoft MVP (Visual Basic)
 
H

Heinz K

Hi Paul,

many thanks for your patience, but this is now far beyond my
knowledge... I'll contact an external developer to come here and check
it. As soon as it's working I'll post it here.

Nevertheless many thanks for your excellent support!
 
A

Anita

I'm having a similar problem, my application can initialize a notes
session and access data OK from within visual studio. When I try to
deploy it to IIS I get the Message "Cannot create ActiveX component"
the first time I try to run the application after IIS is restarted. If
I try again I get the message " Retrieving the COM class factory for
component with CLSID {29131539-2EED-1069-BF5D-00DD011186B7} failed due
to the following error: 8007000e."

The notes client is installed on the IIS server, I have registered
nlsxbe.dll and have copied the dll files from the bin directory on my
development machine to the IIS server.

Have you any ideas what else I could check?

Thanks.
 
H

Heinz K

Hi all,

the external guy now got the webservice running. He played around with
several settings, but the thing he said which most probably fixed the
problem: He gave 'everyone' read-access to the Lotus Notes Directory. I
only tried with the ASP.net-Account and this was not successfull.

Nevertheless I have a strange feeling about that. For me it seems that
some changes are not processed by IIS immediately but you have to wait
some minutes until they are set up.....

However, now it's working and I'm glad. Hope this helps.
 
H

Heinz K

Hi Anita,

try giving 'Everyone' read-access to the Lotus Notes Directory, this
helped in my case.
 
P

Paul Clement

¤ Hi all,
¤
¤ the external guy now got the webservice running. He played around with
¤ several settings, but the thing he said which most probably fixed the
¤ problem: He gave 'everyone' read-access to the Lotus Notes Directory. I
¤ only tried with the ASP.net-Account and this was not successfull.
¤
¤ Nevertheless I have a strange feeling about that. For me it seems that
¤ some changes are not processed by IIS immediately but you have to wait
¤ some minutes until they are set up.....

It very well could be related to the type of authentication your web app is configured for and
whether you are using impersonation.

Based upon your description I had assumed that impersonation was not enabled. I don't know what sort
of authentication you are using (Anonymous, Basic, Integrated NT, etc.).


Paul
~~~~
Microsoft MVP (Visual Basic)
 

Ask a Question

Want to reply to this thread or ask your own question?

You'll need to choose a username for the site, which only take a couple of moments. After that, you can post your question and our members will help you out.

Ask a Question

Top