|
Home > Archive > BizTalk Server Applications Integration > August 2004 > Calling web services from a .NET AIC
You are viewing an archived Text-only version of the thread.
To view this thread in it's original format and/or if you want to reply to
this thread please [click here]
| Author |
Calling web services from a .NET AIC
|
|
| Dan Tharp 2004-08-03, 5:50 pm |
| We're in the process of trying to migrate our VB6/COM+ AICs to being .NET
AICs, using the example that came with the "BizTalk Server 2002 Toolkit for
Microsoft NET"
(http://www.microsoft.com/downloads/...26aa2-9771-40a1
-9fba-a2afbb7ca109&DisplayLang=en), specifically, the example located in
"C:\Program Files\Microsoft BizTalk Server\NET Toolkit\AppInt\VB".
We've worked through all of the interop complexities, registering the
assembly (with regasm.exe), adding the assembly to the global assembly cache
(with gacutil.exe), and adding the AIC to the COM+ database (with
regsvcs.exe) and are able to get a basic .NET AIC to function both on
Development workstations as well as propigate them to our BizTalk 2002
Server server.
The problem comes when we try to add a web service reference to the .NET
AIC.
We can add the reference, recompile and redistribute out to COM+, but as
soon as the AIC tries to make the call to the web service, it fails with a
"Object reference not set to an instance of an object".
Having the web reference in the .NET code and instantiating the service
doesn't kill it. (I tried that and it worked OK.)
Just actually making the call from the AIC to the web service is where
things fail.
?Question: Can a .NET AIC call web services? If so, how?
Doing the usual "add a web reference" approach doesn't work. I'm assuming
the reason has to do with the restrictions of how COM+ <-> .NET interop
functionality works and how everything needs to be strong named (assuming,
web references aren't strong named?)
Note that we're running BizTalk Server 2002--not 2004, so we have to monkey
around with this RCW/CCW interop stuff until we migrate to .NET capable BTS
2004.
But until then, how do we get a .NET AIC to call web services?
If the answer is (since the AIC is seen to COM+ as a COM+ app...not .NET)
to do it via a COM+ compatible approach, then what about calling the web
services via the SOAP toolkit?
I was easily able to install the SOAP 3.0 SDK and get a VB6/COM+ app to call
a web service.
But then, what about doing this through the .NET AIC?
All references in the .NET AIC have to be "strong name", but the SOAP SDK
doesn't come with a .TLB type libary file that I can generate a strong name
assembly from.
Is there a way to get a .TLB file for the SOAP SDK so I can generate a
strong name reference for the .NET AIC?
Any ideas?
Thanks,
Dan Tharp
| |
| Dan Tharp 2004-08-10, 7:53 am |
| Nevermind. It turned out to be an issue of the web service not having
permissions set correctly in IIS.
Dan
"Dan Tharp" <dtharp@gdtr.NOSPAMPLEASE.com> wrote in message
news:%23rY3cVWeEHA.1644@tk2msftngp13.phx.gbl...
> We're in the process of trying to migrate our VB6/COM+ AICs to being .NET
> AICs, using the example that came with the "BizTalk Server 2002 Toolkit
for
> Microsoft NET"
>
(http://www.microsoft.com/downloads/...26aa2-9771-40a1
> -9fba-a2afbb7ca109&DisplayLang=en), specifically, the example located in
> "C:\Program Files\Microsoft BizTalk Server\NET Toolkit\AppInt\VB".
> We've worked through all of the interop complexities, registering the
> assembly (with regasm.exe), adding the assembly to the global assembly
cache
> (with gacutil.exe), and adding the AIC to the COM+ database (with
> regsvcs.exe) and are able to get a basic .NET AIC to function both on
> Development workstations as well as propigate them to our BizTalk 2002
> Server server.
>
> The problem comes when we try to add a web service reference to the .NET
> AIC.
> We can add the reference, recompile and redistribute out to COM+, but as
> soon as the AIC tries to make the call to the web service, it fails with a
> "Object reference not set to an instance of an object".
> Having the web reference in the .NET code and instantiating the service
> doesn't kill it. (I tried that and it worked OK.)
> Just actually making the call from the AIC to the web service is where
> things fail.
>
> ?Question: Can a .NET AIC call web services? If so, how?
> Doing the usual "add a web reference" approach doesn't work. I'm assuming
> the reason has to do with the restrictions of how COM+ <-> .NET interop
> functionality works and how everything needs to be strong named (assuming,
> web references aren't strong named?)
>
> Note that we're running BizTalk Server 2002--not 2004, so we have to
monkey
> around with this RCW/CCW interop stuff until we migrate to .NET capable
BTS
> 2004.
>
> But until then, how do we get a .NET AIC to call web services?
>
> If the answer is (since the AIC is seen to COM+ as a COM+ app...not .NET)
> to do it via a COM+ compatible approach, then what about calling the web
> services via the SOAP toolkit?
> I was easily able to install the SOAP 3.0 SDK and get a VB6/COM+ app to
call
> a web service.
> But then, what about doing this through the .NET AIC?
> All references in the .NET AIC have to be "strong name", but the SOAP SDK
> doesn't come with a .TLB type libary file that I can generate a strong
name
> assembly from.
> Is there a way to get a .TLB file for the SOAP SDK so I can generate a
> strong name reference for the .NET AIC?
>
> Any ideas?
>
> Thanks,
> Dan Tharp
>
>
>
|
|
|
|
|