COM+ Dependancies: System.IO.FileNotFoundException

G

Guest

I have rewritten a VB6 COM+ object using C# .Net. The object works as
expected and registers itself in COM+ on my PC, the development server and
even on the Test server. I did battle with this problem on the test server,
but it seemed to resolve itself. This problem however is not resolving itself
on the Production server.

The COM+ object chats with a 3rd party dll (Registered using Regsrv32) via
an Interop proxy dll. All are in the same folder. "<webApp>\bin"

Via a switch in the web.config file, I can set the application to use either
the VB6 or the .Net version. Both versions use the same 3rd party dll. The
VB6 version works. The .Net version throws the following exception:

1: Error Location:
http://logisonline.pwv.gov.za/logisonline/pages-rq/rq-view-select.aspx
2: Error Source: PackRQ.Net
3: Error Trace:
4:
5: > System.IO.FileNotFoundException: File or assembly name
Interop.EXLORQTypeLibrary, or one of its dependencies, was not found.
6: > at System.Web.UI.Page.ProcessRequestMain()
7: > at System.Web.UI.Control.LoadRecursive()
8: > at System.Web.UI.Control.OnLoad(EventArgs e)
9: > at System.EventHandler.Invoke(Object sender, EventArgs e)
10: > at LogisOnline.WebForms.rq_view_select.Page_Load(Object sender,
EventArgs e)
11: > at LogisOnline.WebForms.RequisitionForm.GetRequisitionMVS(String&
sAction)
12: > at LogisOnline.Bob.RQ.Requisitions.GenericExec(XmlDocument& xmldRQ)
13: > at PackRQ.Net.PackEXLORQ.EXRQ01DR(String sXML)
14: > at
System.Runtime.Remoting.Proxies.RealProxy.PrivateInvoke(MessageData& msgData,
Int32 type)
15: > at
System.Runtime.Remoting.Messaging.StackBuilderSink.SyncProcessMessage(IMessage
msg, Int32 methodPtr, Boolean fExecuteInContext) Exception rethrown at [0]:
at System.Runtime.Remoting.Proxies.RealProxy.HandleReturnMessage(IMessage
reqMsg, IMessage retMsg)
16: > at
System.Runtime.Remoting.Messaging.StackBuilderSink.PrivateProcessMessage(MethodBase
mb, Object[] args, Object server, Int32 methodPtr, Boolean fExecuteInContext,
Object[]& outArgs)
17: > Server stack trace: at PackRQ.Net.PackEXLORQ.EXRQ01DR(String sXML)
This is driving me nuts.

Steps that I have taken to date:
Step 1: I temporarily add the ASPNET user to the administrators group to get
the object registered in Component services.
Outcome: The component registers correctly but the above exception is thrown.
Step 2: I register the component using RegSvcs.
Outcome: The component registers correctly but the above exception is thrown.
Step 3: I rename the Interop.EXLORQTypeLibrary.dll to
Interop.EXLORQTypeLibrary.dll.old.
Outcome: The Exception is the same as above but only up to line 13.
Step 4: Renaming the 3rd party dll (EXLORQ.dll) has no effect.
Step 5: I tried registering the Interop.EXLORQTypeLibrary.dll using RegAsm
to see if that would solve the error:
Outcome: same as above.
Step 6: Configured ASPNET registry permissions as stated in Article ID:
327507 (Q327507) in MSDN.
Outcome: Same as above.

Any help would be VERY MUCH Apreciated.
 
G

Guest

You haven't set your COM+ application to run out of process have you?

W1ld0ne74 said:
I have rewritten a VB6 COM+ object using C# .Net. The object works as
expected and registers itself in COM+ on my PC, the development server and
even on the Test server. I did battle with this problem on the test server,
but it seemed to resolve itself. This problem however is not resolving itself
on the Production server.

The COM+ object chats with a 3rd party dll (Registered using Regsrv32) via
an Interop proxy dll. All are in the same folder. "<webApp>\bin"

Via a switch in the web.config file, I can set the application to use either
the VB6 or the .Net version. Both versions use the same 3rd party dll. The
VB6 version works. The .Net version throws the following exception:

1: Error Location:
http://logisonline.pwv.gov.za/logisonline/pages-rq/rq-view-select.aspx
2: Error Source: PackRQ.Net
3: Error Trace:
4:
5: > System.IO.FileNotFoundException: File or assembly name
Interop.EXLORQTypeLibrary, or one of its dependencies, was not found.
6: > at System.Web.UI.Page.ProcessRequestMain()
7: > at System.Web.UI.Control.LoadRecursive()
8: > at System.Web.UI.Control.OnLoad(EventArgs e)
9: > at System.EventHandler.Invoke(Object sender, EventArgs e)
10: > at LogisOnline.WebForms.rq_view_select.Page_Load(Object sender,
EventArgs e)
11: > at LogisOnline.WebForms.RequisitionForm.GetRequisitionMVS(String&
sAction)
12: > at LogisOnline.Bob.RQ.Requisitions.GenericExec(XmlDocument& xmldRQ)
13: > at PackRQ.Net.PackEXLORQ.EXRQ01DR(String sXML)
14: > at
System.Runtime.Remoting.Proxies.RealProxy.PrivateInvoke(MessageData& msgData,
Int32 type)
15: > at
System.Runtime.Remoting.Messaging.StackBuilderSink.SyncProcessMessage(IMessage
msg, Int32 methodPtr, Boolean fExecuteInContext) Exception rethrown at [0]:
at System.Runtime.Remoting.Proxies.RealProxy.HandleReturnMessage(IMessage
reqMsg, IMessage retMsg)
16: > at
System.Runtime.Remoting.Messaging.StackBuilderSink.PrivateProcessMessage(MethodBase
mb, Object[] args, Object server, Int32 methodPtr, Boolean fExecuteInContext,
Object[]& outArgs)
17: > Server stack trace: at PackRQ.Net.PackEXLORQ.EXRQ01DR(String sXML)
This is driving me nuts.

Steps that I have taken to date:
Step 1: I temporarily add the ASPNET user to the administrators group to get
the object registered in Component services.
Outcome: The component registers correctly but the above exception is thrown.
Step 2: I register the component using RegSvcs.
Outcome: The component registers correctly but the above exception is thrown.
Step 3: I rename the Interop.EXLORQTypeLibrary.dll to
Interop.EXLORQTypeLibrary.dll.old.
Outcome: The Exception is the same as above but only up to line 13.
Step 4: Renaming the 3rd party dll (EXLORQ.dll) has no effect.
Step 5: I tried registering the Interop.EXLORQTypeLibrary.dll using RegAsm
to see if that would solve the error:
Outcome: same as above.
Step 6: Configured ASPNET registry permissions as stated in Article ID:
327507 (Q327507) in MSDN.
Outcome: Same as above.

Any help would be VERY MUCH Apreciated.
 
G

Guest

I set it to be a server component (which does run out of process) Why do you
ask though?

David

James Mahoney said:
You haven't set your COM+ application to run out of process have you?

W1ld0ne74 said:
I have rewritten a VB6 COM+ object using C# .Net. The object works as
expected and registers itself in COM+ on my PC, the development server and
even on the Test server. I did battle with this problem on the test server,
but it seemed to resolve itself. This problem however is not resolving itself
on the Production server.

The COM+ object chats with a 3rd party dll (Registered using Regsrv32) via
an Interop proxy dll. All are in the same folder. "<webApp>\bin"

Via a switch in the web.config file, I can set the application to use either
the VB6 or the .Net version. Both versions use the same 3rd party dll. The
VB6 version works. The .Net version throws the following exception:

1: Error Location:
http://logisonline.pwv.gov.za/logisonline/pages-rq/rq-view-select.aspx
2: Error Source: PackRQ.Net
3: Error Trace:
4:
5: > System.IO.FileNotFoundException: File or assembly name
Interop.EXLORQTypeLibrary, or one of its dependencies, was not found.
6: > at System.Web.UI.Page.ProcessRequestMain()
7: > at System.Web.UI.Control.LoadRecursive()
8: > at System.Web.UI.Control.OnLoad(EventArgs e)
9: > at System.EventHandler.Invoke(Object sender, EventArgs e)
10: > at LogisOnline.WebForms.rq_view_select.Page_Load(Object sender,
EventArgs e)
11: > at LogisOnline.WebForms.RequisitionForm.GetRequisitionMVS(String&
sAction)
12: > at LogisOnline.Bob.RQ.Requisitions.GenericExec(XmlDocument& xmldRQ)
13: > at PackRQ.Net.PackEXLORQ.EXRQ01DR(String sXML)
14: > at
System.Runtime.Remoting.Proxies.RealProxy.PrivateInvoke(MessageData& msgData,
Int32 type)
15: > at
System.Runtime.Remoting.Messaging.StackBuilderSink.SyncProcessMessage(IMessage
msg, Int32 methodPtr, Boolean fExecuteInContext) Exception rethrown at [0]:
at System.Runtime.Remoting.Proxies.RealProxy.HandleReturnMessage(IMessage
reqMsg, IMessage retMsg)
16: > at
System.Runtime.Remoting.Messaging.StackBuilderSink.PrivateProcessMessage(MethodBase
mb, Object[] args, Object server, Int32 methodPtr, Boolean fExecuteInContext,
Object[]& outArgs)
17: > Server stack trace: at PackRQ.Net.PackEXLORQ.EXRQ01DR(String sXML)
This is driving me nuts.

Steps that I have taken to date:
Step 1: I temporarily add the ASPNET user to the administrators group to get
the object registered in Component services.
Outcome: The component registers correctly but the above exception is thrown.
Step 2: I register the component using RegSvcs.
Outcome: The component registers correctly but the above exception is thrown.
Step 3: I rename the Interop.EXLORQTypeLibrary.dll to
Interop.EXLORQTypeLibrary.dll.old.
Outcome: The Exception is the same as above but only up to line 13.
Step 4: Renaming the 3rd party dll (EXLORQ.dll) has no effect.
Step 5: I tried registering the Interop.EXLORQTypeLibrary.dll using RegAsm
to see if that would solve the error:
Outcome: same as above.
Step 6: Configured ASPNET registry permissions as stated in Article ID:
327507 (Q327507) in MSDN.
Outcome: Same as above.

Any help would be VERY MUCH Apreciated.
 
G

Guest

By setting it up as a server component it gets run inside of DLLhost.exe.
Since this exists in windows\system32 instead of your bin folder .NET can't
find the interop file because it starts probing for assemblies from
windows\system32.

To get around this you'll have to add the interop files into the GAC (check
with the component vendor for their primary interop files...).

You might also be able to edit machine.config to tell .NET where to find
your components - never tried that though

James

W1ld0ne74 said:
I set it to be a server component (which does run out of process) Why do you
ask though?

David

James Mahoney said:
You haven't set your COM+ application to run out of process have you?

W1ld0ne74 said:
I have rewritten a VB6 COM+ object using C# .Net. The object works as
expected and registers itself in COM+ on my PC, the development server and
even on the Test server. I did battle with this problem on the test server,
but it seemed to resolve itself. This problem however is not resolving itself
on the Production server.

The COM+ object chats with a 3rd party dll (Registered using Regsrv32) via
an Interop proxy dll. All are in the same folder. "<webApp>\bin"

Via a switch in the web.config file, I can set the application to use either
the VB6 or the .Net version. Both versions use the same 3rd party dll. The
VB6 version works. The .Net version throws the following exception:

1: Error Location:
http://logisonline.pwv.gov.za/logisonline/pages-rq/rq-view-select.aspx
2: Error Source: PackRQ.Net
3: Error Trace:
4:
5: > System.IO.FileNotFoundException: File or assembly name
Interop.EXLORQTypeLibrary, or one of its dependencies, was not found.
6: > at System.Web.UI.Page.ProcessRequestMain()
7: > at System.Web.UI.Control.LoadRecursive()
8: > at System.Web.UI.Control.OnLoad(EventArgs e)
9: > at System.EventHandler.Invoke(Object sender, EventArgs e)
10: > at LogisOnline.WebForms.rq_view_select.Page_Load(Object sender,
EventArgs e)
11: > at LogisOnline.WebForms.RequisitionForm.GetRequisitionMVS(String&
sAction)
12: > at LogisOnline.Bob.RQ.Requisitions.GenericExec(XmlDocument& xmldRQ)
13: > at PackRQ.Net.PackEXLORQ.EXRQ01DR(String sXML)
14: > at
System.Runtime.Remoting.Proxies.RealProxy.PrivateInvoke(MessageData& msgData,
Int32 type)
15: > at
System.Runtime.Remoting.Messaging.StackBuilderSink.SyncProcessMessage(IMessage
msg, Int32 methodPtr, Boolean fExecuteInContext) Exception rethrown at [0]:
at System.Runtime.Remoting.Proxies.RealProxy.HandleReturnMessage(IMessage
reqMsg, IMessage retMsg)
16: > at
System.Runtime.Remoting.Messaging.StackBuilderSink.PrivateProcessMessage(MethodBase
mb, Object[] args, Object server, Int32 methodPtr, Boolean fExecuteInContext,
Object[]& outArgs)
17: > Server stack trace: at PackRQ.Net.PackEXLORQ.EXRQ01DR(String sXML)
This is driving me nuts.

Steps that I have taken to date:
Step 1: I temporarily add the ASPNET user to the administrators group to get
the object registered in Component services.
Outcome: The component registers correctly but the above exception is thrown.
Step 2: I register the component using RegSvcs.
Outcome: The component registers correctly but the above exception is thrown.
Step 3: I rename the Interop.EXLORQTypeLibrary.dll to
Interop.EXLORQTypeLibrary.dll.old.
Outcome: The Exception is the same as above but only up to line 13.
Step 4: Renaming the 3rd party dll (EXLORQ.dll) has no effect.
Step 5: I tried registering the Interop.EXLORQTypeLibrary.dll using RegAsm
to see if that would solve the error:
Outcome: same as above.
Step 6: Configured ASPNET registry permissions as stated in Article ID:
327507 (Q327507) in MSDN.
Outcome: Same as above.

Any help would be VERY MUCH Apreciated.
 

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