1 2009-08-14 Atsushi Enomoto <atsushi@ximian.com>
3 * ChannelDispatcher.cs : EndpointNotFoundException message could
6 2009-08-11 Atsushi Enomoto <atsushi@ximian.com>
8 * IOperationInvoker.cs : fix interface.
9 * DefaultOperationInvoker.cs : refresh implementation of the above.
10 * BaseMessagesFormatter.cs, OperationInvokerHandler.cs :
11 dependent changes for above.
13 2009-08-07 Atsushi Enomoto <atsushi@ximian.com>
15 * InputOrReplyRequestProcessor.cs : now it could return an instance
16 of dynamically generated proxy over DuplexServiceRuntimeChannel.
18 2009-08-07 Atsushi Enomoto <atsushi@ximian.com>
20 * ClientRuntime.cs : oops, it should have been committed at a time.
21 Change .ctor() args. Make some properties auto.
23 2009-08-07 Atsushi Enomoto <atsushi@ximian.com>
25 * DispatchRuntime.cs : callback runtime is set later.
27 2009-08-06 Atsushi Enomoto <atsushi@ximian.com>
30 .ctor() just needs contract. Fill some properties.
32 2009-08-04 Atsushi Enomoto <atsushi@ximian.com>
34 * ReplyHandler.cs : there is better way to check IsOneWay.
36 2009-08-04 Atsushi Enomoto <atsushi@ximian.com>
38 * OperationInvokerHandler.cs : One way operation has no reply.
39 * ReplyHandler.cs : ditto.
41 2009-07-31 Atsushi Enomoto <atsushi@ximian.com>
43 * ChannelDispatcher.cs : raise error on multiple endpoint match
44 (documented at EndpointDispatcher.FilterPriority).
46 2009-07-28 Atsushi Enomoto <atsushi@ximian.com>
48 * ChannelDispatcher.cs : move Open() inside acceptor lock, so that
49 the channel does not have to be fired Receive() before Open().
51 2009-07-14 Atsushi Enomoto <atsushi@ximian.com>
53 * DispatchRuntime.cs : add ValidateMustUnderstand.
54 * DispatchOperation.cs : add AutoDisposeParameters.
56 2009-07-02 Atsushi Enomoto <atsushi@ximian.com>
58 * ChannelDispatcher.cs : when service instance is provided to the
59 ServiceHost, do not reject Type-less state.
61 2009-06-29 Atsushi Enomoto <atsushi@ximian.com>
63 * ChannelDispatcher.cs : do not iterate extra channel acceptance
64 and hence close channels a bit more gracefully.
66 2009-06-25 Atsushi Enomoto <atsushi@ximian.com>
68 * ChannelDispatcher.cs : instead of discarding channels, reuse them
69 unless it is closed by session manager (session manager does not
70 work, so channels are not actually closed automatically yet).
72 2009-06-25 Atsushi Enomoto <atsushi@ximian.com>
74 * SessionInstanceContextProvider.cs : new instance context provider.
76 2009-06-23 Atsushi Enomoto <atsushi@ximian.com>
78 * DispatchRuntime.cs : do not fill InstanceContextProvider here.
79 * ChannelDispatcher.cs : do it here instead.
80 * ChannelDispatcherCollection.cs : remove TODOs.
82 2009-06-23 Atsushi Enomoto <atsushi@ximian.com>
84 * InputOrReplyRequestProcessor.cs : bogus initialization.
86 2009-06-18 Atsushi Enomoto <atsushi@ximian.com>
88 * ChannelDispatcher.cs : significant changes:
89 - simplified Open/Close async.
90 - implement OnAbort().
91 - create ServiceThrottle when it is null.
92 - Channels are accepted as much as the throttle allows, and
93 process requests when accepted an input (now it holds more than
95 - Support ReceiveSynchronously and use Begin/EndAcceptChannel()
97 - Close all channels and the listener when it is closed.
98 - Cosmetic simplification on channel acceptor delegate creation.
100 2009-06-09 Atsushi Enomoto <atsushi@ximian.com>
102 * ChannelDispatcher.cs : avoid NRE (actually it should eliminate
103 Thread.Abort()). Added some comments on throttling.
105 2009-06-09 Atsushi Enomoto <atsushi@ximian.com>
107 * ServiceThrottle.cs : implement.
109 2009-06-08 Atsushi Enomoto <atsushi@ximian.com>
111 * ChannelDispatcher.cs :
112 Add call to base (see CommunicationObject change).
114 2009-06-01 Atsushi Enomoto <atsushi@ximian.com>
116 * ChannelDispatcher.cs : handle more errors gracefully.
118 2009-05-18 Atsushi Enomoto <atsushi@ximian.com>
120 * ErrorProcessingHandler.cs, InputOrReplyRequestProcessor.cs :
121 they also premise request-reply channel and broke duplex channels.
123 2009-05-13 Atsushi Enomoto <atsushi@ximian.com>
125 * ChannelDispatcher.cs : open channel before using it.
127 2009-05-13 Atsushi Enomoto <atsushi@ximian.com>
129 * ReplyHandler.cs, InputOrReplyRequestProcessor.cs,
130 MessageProcessingContext.cs : reply processing is also needed by
131 non-request channels (i.e. duplex). Current code basis lacked
132 such possibility. Quick fix by adding duplex support in
135 2009-05-13 Atsushi Enomoto <atsushi@ximian.com>
137 * ChannelDispatcher.cs, SecurityHandler.cs,
138 InputOrReplyRequestProcessor.cs, MessageProcessingContext.cs :
139 remove default communication timeouts from several types. They
140 bring bogus NRE. Instead, fill timeouts in ChannelDispatcher and
141 use it when required (it was actually *only* request processor).
143 2009-05-13 Atsushi Enomoto <atsushi@ximian.com>
145 * ChannelDispatcher.cs : wrong channel argument.
147 2009-04-27 Atsushi Enomoto <atsushi@ximian.com>
149 * DispatchRuntime.cs : some comment.
150 * ChannelDispatcher.cs : ongoing changes to handle listeners and
151 accepted channels at more precise state. Listeners are opened,
152 without accepting channels. Some setup code is done at OnOpen(),
153 while some are done at OnOpened().
155 2009-04-23 Atsushi Enomoto <atsushi@ximian.com>
157 * DispatchOperation.cs : implement GetFormatter() at service side too.
159 2009-04-01 Atsushi Enomoto <atsushi@ximian.com>
161 * OperationInvokeHandler.cs : replace MS copycat exception message.
163 2009-02-26 Atsushi Enomoto <atsushi@ximian.com>
165 * ClientRuntime.cs : fill contractType in .ctor().
167 2009-02-04 Atsushi Enomoto <atsushi@ximian.com>
169 * BaseMessagesFormatter.cs : do not use non-2.1 CreateInstance().
171 2008-06-18 Noam Lampert <noaml@mainsoft.com>
173 * ChannelDispatcher.cs: Avoid aborting host process on faulty input message.
175 2008-05-22 Noam Lampert <noaml@mainsoft.com>
177 * OperationInvokeHandler.cs: Only return fault reply when TargetInvocation occured (not other internal
178 errors. Serlialize the correct (inner) exception.
180 2008-05-22 Roei Erez <roeie@mainsoft.com>
181 * fix ContractDescription.GetContract implementation
182 * Refactor Request processing
183 * Add support for message inspectors
184 * Add support for InstanceContextProvider & InstanceProvider, including lifecycles events
185 like: ReleaseServiceInstance, Open, Close...
186 * Add relevant test cases.
188 2008-05-01 Eyal Alaluf <eyala@mainsoft.com>
190 * BaseMessagesFormatter.cs: Handle methods with out parameters that return
192 * DispatchOperation.cs, IOperationInvoker.cs: Simplify method invocation.
194 2008-04-22 Igor Zelmanovich <igorz@mainsoft.com>
196 * DispatchOperation.cs: removed dependency on OperationDescription,
197 allows usage of custom channel dispatcher without endpoint was explicitly
200 2008-04-22 Igor Zelmanovich <igorz@mainsoft.com>
202 * MexInstanceContextProvider.cs - remove unused code.
204 2008-04-21 Roei Erez <roeie@mainsoft.com>
206 * ChannelDispatcher.cs - Change order of Dispatcher shutdown
208 2008-04-17 Vladimir Krasnov <vladimirk@mainsoft.com>
210 * ChannelDispatcher.cs, EndpointDispatcher.cs: removed dependency on
211 ServiceDescription/ServiceEndpoint, allows usage of channel dispatcher
212 without endpoint was explicitly built
213 * EndpointDispatcher.cs: Filters lazy evaluation, refactored
214 communication processing, logic moved to channel dispatcher
216 2008-04-17 Vladimir Krasnov <vladimirk@mainsoft.com>
218 * ActionMessageFilter.cs: fixed Match, match for "*" action
220 2008-04-17 Vladimir Krasnov <vladimirk@mainsoft.com>
222 * DispatchOperation.cs: fixed ProcessRequest, fault message creation
224 2008-04-10 Eyal Alaluf <eyala@mainsoft.com>
226 * DefaultMessageOperationFormatter.cs: Moved to BaseMessagesFormatter.cs.
227 * BaseMessagesFormatter.cs: Refactored so typed messages uses the classes
228 defined here instead of the other way around.
229 Added support for by-ref and out parameters.
230 Added support for XmlSerializerFormat serializaters..
231 * DispatchOperation.cs, ClientOperation.cs: Use BaseMessagesFormatter.Create
233 2008-04-09 Roei Erez <roeie@mainsoft.com>
235 * Remove unused nethod from previous commit
237 2008-04-08 Roei Erez <roeie@mainsoft.com>
239 * ChannelDispatcher.cs
241 - Add support for Endpoints property
242 - Remove the hack of 'endpoint_dispatcher' field
243 * ChannelDispatcherCollection.cs
244 - Add support for 'Attach' 'Detach'
245 * EndpointDispatcher.cs
246 - By default create MatchAllMessageFilter.
248 2008-02-17 Atsushi Enomoto <atsushi@ximian.com>
250 * EndpointDispatcher.cs : we don't need AddressFilter workaround
251 from Feb. 14 anymore.
253 2008-02-17 Atsushi Enomoto <atsushi@ximian.com>
255 * EndpointDispatcher.cs : after service method call, apply outgoing
256 headers and properties to the returned message.
258 2008-02-15 Atsushi Enomoto <atsushi@ximian.com>
260 * ChannelDispatcher.cs : populate DispatchOperations before applying
261 IEndpointBehaviors so that those behaviors can modify dispatch
264 2008-02-15 Atsushi Enomoto <atsushi@ximian.com>
266 * DispatchOperation.cs : Action may be null. For such cases, use
267 MessageDirection to determine the message description.
269 2008-02-15 Atsushi Enomoto <atsushi@ximian.com>
271 * EndpointAddressMessageFilter.cs : implement Match(MessageBuffer).
272 Use ordinal string comparison.
273 * PrefixEndpointAddressMessageFilter.cs : implement Match() (both).
275 2008-02-14 Atsushi Enomoto <atsushi@ximian.com>
277 * EndpointDispatcher.cs : moved AddressFilter application only when
278 DispatchOperation was not selected (it is sort of workaround).
280 2007-08-19 Atsushi Enomoto <atsushi@ximian.com>
282 * DefaultMessageOperationFormatter.cs : Fixed SerializeReply() for
283 message contract type to process result, not the parameter.
285 2007-08-19 Atsushi Enomoto <atsushi@ximian.com>
287 * SingletonInstanceContextProvider.cs : new.
289 2007-08-17 Atsushi Enomoto <atsushi@ximian.com>
291 * DefaultMessageOperationFormatter.cs : dependent changes on
292 message serializer and deserializer.
294 2007-03-24 Atsushi Enomoto <atsushi@ximian.com>
296 * DefaultMessageOperationFormatter.cs :
297 use it for deserialization as well.
299 2007-03-24 Atsushi Enomoto <atsushi@ximian.com>
301 * DefaultMessageOperationFormatter.cs : consider message contracts
302 during message serialization/deserialization.
304 2007-03-07 Atsushi Enomoto <atsushi@ximian.com>
306 * EndpointDispatcher.cs : now dispatcher-side foundation for token
307 negotiation is ready. Handle negotiation message on its own way.
308 * DispatchOperation.cs : instead of returning irrelevant SOAP Fault,
309 simply raise an error and let FaultConverter do better work.
311 2007-03-07 Atsushi Enomoto <atsushi@ximian.com>
313 * EndpointDispatcher.cs : use ErrorHandlers when error was raised.
314 Handle exceptions to make into SOAP Fault, using FaultConverter.
315 * ChannelDispatcher.cs : simply get ServiceEndpoint at Attach().
316 * ChannelDispatcherBase.cs : removed MonoTODOs.
318 2007-03-07 Atsushi Enomoto <atsushi@ximian.com>
320 * ChannelDispatcher.cs, DispatchRuntime.cs, EndpointDispatcher.cs :
321 moved most of request/input processing to EndpointDispatcher.cs.
322 Also, ChannelDispatcher now contains code for behavior
325 2007-03-07 Atsushi Enomoto <atsushi@ximian.com>
327 * ChannelDispatcher.cs : some cosmetic refactoring on error handling
330 2006-12-14 Atsushi Enomoto <atsushi@ximian.com>
332 * ChannelDispatcher.cs, DispatchRuntime.cs, DispatchOperation.cs :
333 Support OperationContext and OperationContextScope with
334 ServiceRuntimeChannel as its .ctor() input.
336 2006-12-14 Atsushi Enomoto <atsushi@ximian.com>
338 * DispatchRuntime.cs : raise an error when the DispatchOperation
339 returned null Message.
341 2006-10-18 Ankit Jain <jankit@novell.com>
343 * MexInstanceContextProvider.cs (HttpGetInstanceContextProvider): New.
344 * DispatchOperation.cs (DoProcessRequest): InstanceContext returned by
345 the provider can be null.
346 * EndpointAddressMessageFilter.cs (Match): Handle IncludeHostNameInComparison.
348 2006-10-12 Atsushi Enomoto <atsushi@ximian.com>
350 * DispatchOperation.cs : slightly improved exception message.
352 2006-10-06 Ankit Jain <jankit@novell.com>
354 * ChannelDispatcher.cs (ListenerLoopManager.StartLoopCore):
355 ReceiveRequest can return null.
357 2006-10-05 Atsushi Enomoto <atsushi@ximian.com>
359 * ClientRuntime.cs : added MaxFaultSize.
361 2006-10-05 Atsushi Enomoto <atsushi@ximian.com>
363 * ChannelDispatcher.cs : don't reject anonymous and null To.
365 2006-10-04 Ankit Jain <jankit@novell.com>
367 * ChannelDispatcher.cs (ListenerLoopManager.StartLoopCore): Reply with a
368 Fault message if message's To doesn't match the endpoint.
369 (ListenerLoopManager.CreateDestinationUnreachable): New.
370 * IInstanceContextProvider.cs: New.
371 * MexInstanceContextProvider.cs: New. InstanceContextProvider for
373 (MetadataExchange): Implementation of IMetadataExchange.
374 * DispatchRuntime.cs (InstanceContextProvider): Add missing property.
375 * DispatchOperation.cs (DoProcessRequest): Use InstanceContextProvider
376 if available to obtain service instance.
377 * EndpointDispatcher.cs (.ctor): Set AddressFilter to EndpointAddressMessageFilter.
378 * EndpointAddressMessageFilter.cs (Match): Implement.
380 2006-10-03 Atsushi Enomoto <atsushi@ximian.com>
382 * ClientRuntime.cs : added InteractiveChannelInitializer.
384 2006-09-12 Atsushi Enomoto <atsushi@ximian.com>
386 * DispatchOperation.cs : removed extra comment.
388 2006-09-08 Atsushi Enomoto <atsushi@ximian.com>
390 * DispatchOperation.cs : workaround to send exception detail.
392 2006-09-06 Atsushi Enomoto <atsushi@ximian.com>
394 * ICallContextInitializer.cs : new file.
395 * DispatchOperation.cs : use above.
396 Not sure if it works correctly though.
398 2006-08-28 Atsushi Enomoto <atsushi@ximian.com>
400 * DispatchOperation.cs : when there is an error during
401 ProcessRequest(), wrap the exception with MessageFault and return
404 2006-08-10 Duncan Mak <duncan@novell.com>
406 * ExceptionHandler.cs: New file.
408 * ServiceThrottle.cs (MaxConnections): Renamed to
409 MaxConcurrentSessions.
410 (MaxInstances): Renamed to MaxConcurrentInstances.
412 2006-07-27 Atsushi Enomoto <atsushi@ximian.com>
414 * IInteractiveChannelInitializer.cs : new file.
416 2006-07-14 Atsushi Enomoto <atsushi@ximian.com>
418 * IErrorHandler.cs : API updates.
420 2006-07-13 Atsushi Enomoto <atsushi@ximian.com>
422 * DispatchRuntime.cs :
423 it was selecting UnhandledOperation unexpectedly.
424 * DispatchOperation.cs : added FIXME comment.
426 2006-07-13 Atsushi Enomoto <atsushi@ximian.com>
428 * DefaultMessageOperationFormatter.cs : Remove hack for non-
429 (de)serializing Message-based methods. They are now moved to
430 ClientBase and ServiceHostBase to explicitly set
431 [Serialize|Deserialize][Request|Reply].
433 2006-07-12 Atsushi Enomoto <atsushi@ximian.com>
435 * DefaultMessageOperationFormatter.cs : don't omit action on
436 SerializeRequest. Do it in SerializeReply.
438 2006-07-12 Atsushi Enomoto <atsushi@ximian.com>
440 * DefaultMessageOperationFormatter.cs : When addressing version is
441 None, then omit reply action. This logic is moved from MessageImpl.
443 2006-07-11 Atsushi Enomoto <atsushi@ximian.com>
445 * DefaultMessageOperationFormatter.cs :
446 return message, not parameter[0]. Removed some extra FIXMEs.
448 2006-07-10 Atsushi Enomoto <atsushi@ximian.com>
450 * DefaultMessageOperationFormatter.cs : when the parameter is
451 Message and the return type is Message, then do not use
454 2006-07-07 Atsushi Enomoto <atsushi@ximian.com>
456 * PrefixEndpointAddressMessageFilter.cs, FaultContractInfo.cs :
457 new types in June CTP.
458 * ISharedInstanceSessionLifetime.cs:
460 * ChannelDispatcher.cs, MatchAllMessageFilter.cs, DispatchRuntime.cs,
461 DispatchOperation.cs, ClientRuntime.cs, MatchNoneMessageFilter.cs,
462 ClientOperation.cs, ActionMessageFilterTable.cs,
463 EndpointAddressMessageFilterTable.cs :
464 several minor fixes for June CTP.
466 2006-07-06 Atsushi Enomoto <atsushi@ximian.com>
468 * DispatchOperation.cs : MessageFault.DefaultAction vanished.
470 2006-07-05 Atsushi Enomoto <atsushi@ximian.com>
472 * IClientFormatter.cs, IClientMessageFormatter.cs,
473 IDispatchFormatter.cs, IDispatchMessageFormatter.cs :
474 renamed former to latter, for each.
476 2006-07-05 Atsushi Enomoto <atsushi@ximian.com>
478 * ChannelDispatcher.cs, DispatchRuntime.cs :
479 IRequestContext -> RequestContext.
481 2006-07-05 Atsushi Enomoto <atsushi@ximian.com>
483 * ChannelDispatcher.cs, IDispatchFormatter.cs,
484 DefaultMessageOperationFormatter.cs, IClientFormatter.cs,
485 DispatchOperation.cs, ClientOperation.cs :
486 some June CTP updates.
488 2006-06-22 Atsushi Enomoto <atsushi@ximian.com>
490 * DefaultMessageOperationFormatter.cs : implement SerializeRequest()
491 and DeserializeReply(). Now simple ClientBase<T> sample is working.
493 2006-06-22 Atsushi Enomoto <atsushi@ximian.com>
495 * ClientOperation.cs : added GetFormatter() to support message
496 serialization/deserialization.
497 * DispatchOperation.cs : made some internal members private
498 (they are exposed extraneously). Commented out debugging code.
500 2006-06-20 Atsushi Enomoto <atsushi@ximian.com>
502 * DefaultMessageOperationFormatter.cs : In SerializeReply(), use
503 custom BodyWriter() and use MessagePartDescription names. Now
504 return value and other (ref/out) parameters could be equivalently
505 serialized (at this method; to support them more love is needed).
507 2006-06-20 Atsushi Enomoto <atsushi@ximian.com>
509 * DefaultMessageOperationFormatter.cs :
510 Action for response is null (though it is likely conditional).
512 2006-06-20 Atsushi Enomoto <atsushi@ximian.com>
514 * DefaultMessageOperationFormatter.cs :
515 true DeserializeReply implementation using Message.CreateMessage()
516 with DataContractSerializer (not complete though).
518 2006-05-29 Atsushi Enomoto <atsushi@ximian.com>
520 * ChannelDispatcher.cs, DispatchOperation.cs,
521 ChannelDispatcherBase.cs :
522 some updated API fixes.
524 2006-05-29 Atsushi Enomoto <atsushi@ximian.com>
526 * EndpointDispatcher.cs : moved from Sys.ServiceModel.
528 2006-04-20 Atsushi Enomoto <atsushi@ximian.com>
530 * ClientRuntime.cs : some minor collection instantiation and comments.
532 2006-04-07 Atsushi Enomoto <atsushi@ximian.com>
534 * DispatchOperation.cs : Implemented internal MessageVersion.
535 hacked instance provision by using Activator.CreateInstance.
536 * DefaultMessageOperationFormatter.cs : fixed DeserializeRequest to
537 be functional. Implemented SerializeReply.
539 2006-04-05 Atsushi Enomoto <atsushi@ximian.com>
541 * DispatchOperation.cs : return SOAP fault message for nonexistent
543 * DefaultMessageOperationFormatter.cs : implemented
544 DeserializeRequest(), though there is no working example.
546 2006-03-17 Atsushi Enomoto <atsushi@ximian.com>
548 * DispatchOperation.cs : implemented logic to acquire
549 OperationDescription. Added code for default IDispatchFormatter
551 * DispatchRuntime.cs : fix warning.
552 * DefaultMessageOperationFormatter.cs : new file, for default
553 IDispatchFormatter implementation (not done yet).
554 * ChannelDispatcher.cs : create EndpointDispatcher in Attach and
555 bind to this instance.
557 2006-03-16 Atsushi Enomoto <atsushi@ximian.com>
559 * ChannelDispatcherCollection.cs : added parameterless ctor().
560 * ChannelDispatcher.cs DispatchRuntime.cs DispatchOperation.cs :
561 Set some initial field values as proved in unit tests.
562 Request/input processing is still ongoing.
564 2006-03-13 Atsushi Enomoto <atsushi@ximian.com>
566 * ChannelDispatcher.cs
568 DispatchOperation.cs : added request/input processing code.
570 2006-03-07 Atsushi Enomoto <atsushi@ximian.com>
572 * ChannelDispatcher.cs : Get "AcceptChannel" method without ambiguity.
574 2006-03-07 Atsushi Enomoto <atsushi@ximian.com>
576 * ChannelDispatcher.cs : Added request-processing code.
578 2006-03-06 Atsushi Enomoto <atsushi@ximian.com>
580 * ChannelDispatcher.cs : implement Attach() and Detach() more to work.
582 2006-02-23 Atsushi Enomoto <atsushi@ximian.com>
584 * DispatchBehavior.cs :
585 Dependent fixes for System.IdentityModel reorgainzation.
587 2006-02-23 Atsushi Enomoto <atsushi@ximian.com>
589 * FilterNodeQuotaExceededException.cs
590 FilterInvalidBodyAccessException.cs DispatchBehavior.cs
591 DispatchOperation.cs NavigatorInvalidBodyAccessException.cs
592 MatchNoneFilter.cs ActionFilter.cs
593 MultipleFilterMatchesException.cs Filter.cs
594 IInstanceContextInitializer.cs XPathFilter.cs
595 IDispatchOperationSelector.cs MatchAllFilter.cs
596 ActionFilterTable.cs EndpointAddressFilter.cs FilterTable.cs
597 EndpointFilterTable.cs XPathMessageContext.cs
598 IEndpointDispatcher.cs ProxyBehavior.cs
599 ProxyOperation.cs XPathFilterTable.cs
600 EndpointAddressFilterTable.cs InvalidBodyAccessException.cs
601 IFilterTable.cs IOperationInvoker.cs :
602 moved from System.ServiceModel due to the API changes.