We help IT Professionals succeed at work.

Accessing COM dll.  Works in Visual Studio but not when published in IIS.

Medium Priority
519 Views
Last Modified: 2013-11-26
I have a simple ASP.NET test page that calls a method in a COM dll.  When running from within Visual Studio, using Visual Studio's web server, things work fine.  When I attempt to run the page outside of Visual Studio via IIS, the pagel errors with the HRESULT: 0x80020009 (DISP_E_EXCEPTION) error.  The error occurs at the line of the COM method call.

I don't understand what's different when executing through IIS.  The dll is registered, otherwise it wouldn't work within VS.  I've tried copying the dll locally to my website's bin folder but that doesn't help.
Protected Sub Button1_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles Button1.Click
 
        Dim i As Integer
        Dim strUserid As Object
        Dim strUserName As Object
'
'
        strUserid = "DEMO"
        strUserName = "PASSWORD"
'
        mRMCom = New RMIFCLLib.Client
'
        Try
            i = mRMCom.Logon("AUTOSTORE", strUserid, strUserName ) ' ERROR OCCURS HERE
        Catch Ex As Exception
            Me.Label1.Text = Ex.Message
            Return
        End Try
'
        i = mRMCom.GetFirstUserID(strUserid, strUserName)
        While (i >= 0)
            Me.ListBox1.Items.Add(strUserid & ", " & strUserName)
            i = mRMCom.GetNextUserID(strUserid, strUserName)
        End While
'
 End Sub

Open in new window

Comment
Watch Question

CERTIFIED EXPERT

Commented:
Things like this are usually a permissions problem.  When you run in Visual Studio, I guess you are running as you, but when you hit it from IIS you are running as

IUSR_<yourmachinename> user account.
This account must have permissions to the DLL....if it is in another location.

See this:
http://support.softartisans.com/kbview_883.aspx

be sure the above user account has proper permissions for the .dll and folder it is in

Author

Commented:
I have provided Full Access to both the ASPNET user and IUSR_<machinename> accounts for the folder containing the COM dll.  I also tried copying the dll to the bin folder in the website.  No luck with either.
CERTIFIED EXPERT

Commented:
OK. how about permissions on the com dll itself. Does IUSR have permissions to the file?

Author

Commented:
Yes, it has the same permissions as the containing folder.  Looks like it inherited the folder permissions.
CERTIFIED EXPERT
Commented:
Unlock this solution and get a sample of our free trial.
(No credit card required)
UNLOCK SOLUTION

Author

Commented:
The COM dll does read from the registry.  The solution was to give the local user ASPNET proper access to the appropriate registry key (RMCLIENT32 in our case).
Unlock the solution to this question.
Thanks for using Experts Exchange.

Please provide your email to receive a sample view!

*This site is protected by reCAPTCHA and the Google Privacy Policy and Terms of Service apply.

OR

Please enter a first name

Please enter a last name

8+ characters (letters, numbers, and a symbol)

By clicking, you agree to the Terms of Use and Privacy Policy.