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
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
> 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
Christopher Crooker - 03 Aug 2004 21:05 GMT
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
> 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
[quoted text clipped - 6 lines]
> Jeffrey Hasan, MCSD
> President, Bluestone Partners, Inc.