It doesn't help much. I'm trying to extend SoapHttpTransport. And it works
other than your implementation.
In your article Send and Receive is made in Transport. In SoapHttpTransport
there is no Receive method. All receive code is in SoapHttpRequestChannel.
Daniel,
WSE Transport infrastructure layout is the same for any kind of transport
(it's abstracted by SoapTransport class). For actively listining channel
(SoapChannelCapabilities property) its GetInputChannel(...) method will
return back the SoapHttpRequestChannel channel for the specific endpoint.
This channel has implementation of the ISoapInputChannel and
ISoapOutputChannel interfaces and reference for the configured formatter
(SoapPlainFormatter).
Activating (plumbing) your service hosted by IIS is done in the web.config
file like is shown in the following example:
<httpHandlers>
<add verb="*" path="MyService.ashx"
type="NamespaceMyService.MuService, MyServiceAssembly" />
</httpHandlers>
The SoapReceiver has implementation of the IHttpRequest interface which it
enables to process HttpContext in the ProcessRequest method. This method
dispatches incoming HttpContext to the specific endpoint
SoapHttpRequestChannel receiver to deserialize an incoming stream into the
SoapEnvelope message. After that the message is dispatched to your receiver
method via the SoapReceiver.ProcessMessage.
The Level 0 of the WSE2 Messaging infrastructure can be customized building
a Custom SoapTransport and/or SoapFormatter.
Note that the channel's classes (such as SoapHttpRequestChannel,
SoapHttpOutputChanne, etc.) are sealed classes and SoapHttpTransport will
not help as a derived class for your custimizing.
hth
Roman
> It doesn't help much. I'm trying to extend SoapHttpTransport. And it works
> other than your implementation.
[quoted text clipped - 16 lines]
>>> I must say that WSE dokumentation is allmost as bad as any Java
>>> dokumentation :-(
Daniel Danilin - 26 Mar 2005 21:33 GMT
> Note that the channel's classes (such as SoapHttpRequestChannel,
> SoapHttpOutputChanne, etc.) are sealed classes and SoapHttpTransport will
> not help as a derived class for your custimizing.
Do you mean it's not possible to make http transport using
SoapHttpRequestChannel without IIS?
Roman Kiss [MVP] - 27 Mar 2005 01:59 GMT
Daniel,
have a look at the folowing links:
http://msdn.microsoft.com/msdnmag/issues/04/12/ServiceStation/
http://msdn.microsoft.com/library/default.asp?url=/library/en-us/http/http/using
_http_api.asp
Roman
>> Note that the channel's classes (such as SoapHttpRequestChannel,
>> SoapHttpOutputChanne, etc.) are sealed classes and SoapHttpTransport will
>> not help as a derived class for your custimizing.
>
> Do you mean it's not possible to make http transport using
> SoapHttpRequestChannel without IIS?
Daniel Danilin - 27 Mar 2005 13:33 GMT
Unfortunatly first link is for .NET 2.0. And second link is not managed.
Anyway, I'v made HttpTransport using Cassini server. That works using
SoapHttpRequestChannel and HttpContext just like with IIS. And you don't
have to use web.config to add your receivers or write any *.asmx files.
Receivers can be added just like in tcp transport (
SoapReceivers.Add(endpoint, typeof(MyReceiver)); ). MyReceiver can be
derived from SoapService or SoapReceiver.
> Daniel,
>
[quoted text clipped - 12 lines]
>> Do you mean it's not possible to make http transport using
>> SoapHttpRequestChannel without IIS?