WSE 2.0 SP1 SoapClient/Service and NAT

  • Thread starter Christopher Crooker
  • Start date
C

Christopher Crooker

I have been working with WSE 2.0 for a few weeks now and it works great when I use endpoints that are completely local (soap.tcp://localhost/...). However, in my network environment I am behind a NAT router and I can't figure out how to get the client and service to communicate because WSE seems to be picky about addressing.

I have a dynamic DNS address that refers to the machine externally, and binding to that address as the SoapService's EndpointReference fails because the transport address cannot be associated with a local interface. I have read alot of documentation, forums and blogs and tried many configurations to get this to work with differing results including a socket exceptiona because the connection is being actively refused and AddressingFaults of Destination Unreachable.

I have attempted to "manually" route the messages using Via, making the client anonymous by having the From field set to http://schemas.xmlsoap.org/ws/2004/03/addressing/role/anonymous, assign the correct adress to the SoapService using the SoapActor attribute, modify my router's port access (to ensure it wasn't an external problem) etc. and all to no avail. It must be a WSE issue because I can connect to the SoapService from an external machine via telnet when I bind it to "localhost", but WSE can't communicate properly.

The bottom line question is: How can you use WSE 2.0 to start a service bound to a local interface address and then connect to that service using a different externally visible address? Any help would be immensely appreciated. (Just to clarify, there is only one NIC connected to a network.)

Thanks,
Chris
 
J

Jeffrey Hasan

This is analgous to the problem that multi-usergamers sometimes run into.
The generic answer to your issue is that you need to implement port
forwarding so that incoming service requests are correctly routed to the Web
service. I don't know what else you are running, so you may not want to
generically route all port 80 (or 443) traffic. Depending on the audience
for your service, I would configure it on a separate port, and enable port
forwarding.

Jeffrey Hasan, MCSD
President, Bluestone Partners, Inc.
-----------------------------------------------
Author of: Expert SOA in C# Using WSE 2.0 (APress, 2004)
http://www.bluestonepartners.com/soa.aspx

Christopher Crooker said:
I have been working with WSE 2.0 for a few weeks now and it works great
when I use endpoints that are completely local (soap.tcp://localhost/...).
However, in my network environment I am behind a NAT router and I can't
figure out how to get the client and service to communicate because WSE
seems to be picky about addressing.
I have a dynamic DNS address that refers to the machine externally, and
binding to that address as the SoapService's EndpointReference fails because
the transport address cannot be associated with a local interface. I have
read alot of documentation, forums and blogs and tried many configurations
to get this to work with differing results including a socket exceptiona
because the connection is being actively refused and AddressingFaults of
Destination Unreachable.
I have attempted to "manually" route the messages using Via, making the
client anonymous by having the From field set to
http://schemas.xmlsoap.org/ws/2004/03/addressing/role/anonymous, assign the
correct adress to the SoapService using the SoapActor attribute, modify my
router's port access (to ensure it wasn't an external problem) etc. and all
to no avail. It must be a WSE issue because I can connect to the
SoapService from an external machine via telnet when I bind it to
"localhost", but WSE can't communicate properly.
The bottom line question is: How can you use WSE 2.0 to start a service
bound to a local interface address and then connect to that service using a
different externally visible address? Any help would be immensely
appreciated. (Just to clarify, there is only one NIC connected to a
network.)
 
C

Christopher Crooker

From my original post:

"(I have attempted to) ...modify my router's port access (to ensure it wasn't an external problem) etc. and all to no avail. It must be a WSE issue because I can connect to the SoapService from an external machine via telnet when I bind [the service] to 'localhost', but WSE can't communicate properly."

The problem is some kind of "policy" (though not necessarily related to the WSE Policy mechanisms) issue that WSE is enforcing that I can't figure out how to work around. I suspect there must be a fairly simple solution but I can't find any examples or solutions for people with a similar issue.

Thanks for trying,
Chris
 

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

Members online

Forum statistics

Threads
473,982
Messages
2,570,189
Members
46,734
Latest member
manin

Latest Threads

Top