You have to use some kind of framing using soap over TCP. WSE uses DIME and
the stream. You can confirm this by checking for an error in the event log
If you use the SoapClient/SoapSender the framing will be done for you. See
"justin_sun" <yuwenwu@yahoo.com> wrote in message
news:fa04fcb5.0408031128.7778e259@posting.google.com...
> BTW, below is the SOAP message I'm trying to send out:
>
> <soap:Envelope
xmlns:wsa="
http://schemas.xmlsoap.org/ws/2004/03/addressing" >
> xmlns:soap="
http://schemas.xmlsoap.org/soap/envelope/"> > <soap:Header>
> <wsa:Action>http://localhost/fake_notify</wsa:Action>
> <wsa:MessageID>uuid:faadcef2-a83d-4fc8-8282-4f19bbdb9e0f</wsa:MessageID>
> <wsa:To>soap.tcp://127.0.0.1:8081/</wsa:To>
> <wsse:Security>
> <wsu:Timestamp wsu:Id="Timestamp-8e8535c8-152c-4511-b1b5-2f098b204b66">
> <wsu:Created>2004-07-30T00:05:07Z</wsu:Created>
> <wsu:Expires>2004-07-30T00:10:07Z</wsu:Expires>
> </wsu:Timestamp>
> </wsse:Security>
> </soap:Header>
> <soap:Body><myTest xmlns="urn:abc"><Reason>fake
> notification</Reason></myTest>
> </soap:Body>
> </soap:Envelope>
>
> yuwenwu@yahoo.com (justin_sun) wrote in message
news:<fa04fcb5.0408021000.2f6ae44b@posting.google.com>...
> > Hi,
> >
> > I am implementing a simple application using WSE 2.0 to communicate
> > with another gSoap-implemented web service for inter-op test. My app
> > uses a SoapReceiver to listen for incoming SOAP Messages from the web
> > service. The code is like:
> > ...
> > EventReceiver receiver = new EventReceiver();
> > SoapReceivers.Add(new Uri("soap.tcp://127.0.0.1:8081"), receiver);
> > ...
> >
> > And EventReceiver is a derived class of SoapReceiver.
> >
> > However, when the message comes in, the Receive() method in the
> > SoapReceiver is not invoked.
> >
> > In order to debug the problem, I did an experiment as below:
> > 1. I wrote a simple web service using SoapSender to send the message,
> > and saved the traced Soap Message in a file , say "abc.xml"
> >
> > 2.then, I tried to write an app using TCPClient to send the SOAP
> > message saved in "abc.xml", the code is like
> > ....
> > Int32 port = 8081;
> > TcpClient client = new TcpClient("127.0.0.1", port);
> > byte[] data = new UTF8Encoding().GetBytes(message);
> > NetworkStream stream = client.GetStream();
> > stream.Write(data, 0, data.Length);
> > ....
> >
> > "message" contains the string read from "abc.xml". But Receive()
> > Method is still not invoked ...
> >
> > Any idea? And solutions?
> >
> > Thanks.