1 2009-07-28 Atsushi Enomoto <atsushi@ximian.com>
3 * ChannelDispatcher.cs : move Open() inside acceptor lock, so that
4 the channel does not have to be fired Receive() before Open().
6 2009-07-14 Atsushi Enomoto <atsushi@ximian.com>
8 * DispatchRuntime.cs : add ValidateMustUnderstand.
9 * DispatchOperation.cs : add AutoDisposeParameters.
11 2009-07-02 Atsushi Enomoto <atsushi@ximian.com>
13 * ChannelDispatcher.cs : when service instance is provided to the
14 ServiceHost, do not reject Type-less state.
16 2009-06-29 Atsushi Enomoto <atsushi@ximian.com>
18 * ChannelDispatcher.cs : do not iterate extra channel acceptance
19 and hence close channels a bit more gracefully.
21 2009-06-25 Atsushi Enomoto <atsushi@ximian.com>
23 * ChannelDispatcher.cs : instead of discarding channels, reuse them
24 unless it is closed by session manager (session manager does not
25 work, so channels are not actually closed automatically yet).
27 2009-06-25 Atsushi Enomoto <atsushi@ximian.com>
29 * SessionInstanceContextProvider.cs : new instance context provider.
31 2009-06-23 Atsushi Enomoto <atsushi@ximian.com>
33 * DispatchRuntime.cs : do not fill InstanceContextProvider here.
34 * ChannelDispatcher.cs : do it here instead.
35 * ChannelDispatcherCollection.cs : remove TODOs.
37 2009-06-23 Atsushi Enomoto <atsushi@ximian.com>
39 * InputOrReplyRequestProcessor.cs : bogus initialization.
41 2009-06-18 Atsushi Enomoto <atsushi@ximian.com>
43 * ChannelDispatcher.cs : significant changes:
44 - simplified Open/Close async.
45 - implement OnAbort().
46 - create ServiceThrottle when it is null.
47 - Channels are accepted as much as the throttle allows, and
48 process requests when accepted an input (now it holds more than
50 - Support ReceiveSynchronously and use Begin/EndAcceptChannel()
52 - Close all channels and the listener when it is closed.
53 - Cosmetic simplification on channel acceptor delegate creation.
55 2009-06-09 Atsushi Enomoto <atsushi@ximian.com>
57 * ChannelDispatcher.cs : avoid NRE (actually it should eliminate
58 Thread.Abort()). Added some comments on throttling.
60 2009-06-09 Atsushi Enomoto <atsushi@ximian.com>
62 * ServiceThrottle.cs : implement.
64 2009-06-08 Atsushi Enomoto <atsushi@ximian.com>
66 * ChannelDispatcher.cs :
67 Add call to base (see CommunicationObject change).
69 2009-06-01 Atsushi Enomoto <atsushi@ximian.com>
71 * ChannelDispatcher.cs : handle more errors gracefully.
73 2009-05-18 Atsushi Enomoto <atsushi@ximian.com>
75 * ErrorProcessingHandler.cs, InputOrReplyRequestProcessor.cs :
76 they also premise request-reply channel and broke duplex channels.
78 2009-05-13 Atsushi Enomoto <atsushi@ximian.com>
80 * ChannelDispatcher.cs : open channel before using it.
82 2009-05-13 Atsushi Enomoto <atsushi@ximian.com>
84 * ReplyHandler.cs, InputOrReplyRequestProcessor.cs,
85 MessageProcessingContext.cs : reply processing is also needed by
86 non-request channels (i.e. duplex). Current code basis lacked
87 such possibility. Quick fix by adding duplex support in
90 2009-05-13 Atsushi Enomoto <atsushi@ximian.com>
92 * ChannelDispatcher.cs, SecurityHandler.cs,
93 InputOrReplyRequestProcessor.cs, MessageProcessingContext.cs :
94 remove default communication timeouts from several types. They
95 bring bogus NRE. Instead, fill timeouts in ChannelDispatcher and
96 use it when required (it was actually *only* request processor).
98 2009-05-13 Atsushi Enomoto <atsushi@ximian.com>
100 * ChannelDispatcher.cs : wrong channel argument.
102 2009-04-27 Atsushi Enomoto <atsushi@ximian.com>
104 * DispatchRuntime.cs : some comment.
105 * ChannelDispatcher.cs : ongoing changes to handle listeners and
106 accepted channels at more precise state. Listeners are opened,
107 without accepting channels. Some setup code is done at OnOpen(),
108 while some are done at OnOpened().
110 2009-04-23 Atsushi Enomoto <atsushi@ximian.com>
112 * DispatchOperation.cs : implement GetFormatter() at service side too.
114 2009-04-01 Atsushi Enomoto <atsushi@ximian.com>
116 * OperationInvokeHandler.cs : replace MS copycat exception message.
118 2009-02-26 Atsushi Enomoto <atsushi@ximian.com>
120 * ClientRuntime.cs : fill contractType in .ctor().
122 2009-02-04 Atsushi Enomoto <atsushi@ximian.com>
124 * BaseMessagesFormatter.cs : do not use non-2.1 CreateInstance().
126 2008-06-18 Noam Lampert <noaml@mainsoft.com>
128 * ChannelDispatcher.cs: Avoid aborting host process on faulty input message.
130 2008-05-22 Noam Lampert <noaml@mainsoft.com>
132 * OperationInvokeHandler.cs: Only return fault reply when TargetInvocation occured (not other internal
133 errors. Serlialize the correct (inner) exception.
135 2008-05-22 Roei Erez <roeie@mainsoft.com>
136 * fix ContractDescription.GetContract implementation
137 * Refactor Request processing
138 * Add support for message inspectors
139 * Add support for InstanceContextProvider & InstanceProvider, including lifecycles events
140 like: ReleaseServiceInstance, Open, Close...
141 * Add relevant test cases.
143 2008-05-01 Eyal Alaluf <eyala@mainsoft.com>
145 * BaseMessagesFormatter.cs: Handle methods with out parameters that return
147 * DispatchOperation.cs, IOperationInvoker.cs: Simplify method invocation.
149 2008-04-22 Igor Zelmanovich <igorz@mainsoft.com>
151 * DispatchOperation.cs: removed dependency on OperationDescription,
152 allows usage of custom channel dispatcher without endpoint was explicitly
155 2008-04-22 Igor Zelmanovich <igorz@mainsoft.com>
157 * MexInstanceContextProvider.cs - remove unused code.
159 2008-04-21 Roei Erez <roeie@mainsoft.com>
161 * ChannelDispatcher.cs - Change order of Dispatcher shutdown
163 2008-04-17 Vladimir Krasnov <vladimirk@mainsoft.com>
165 * ChannelDispatcher.cs, EndpointDispatcher.cs: removed dependency on
166 ServiceDescription/ServiceEndpoint, allows usage of channel dispatcher
167 without endpoint was explicitly built
168 * EndpointDispatcher.cs: Filters lazy evaluation, refactored
169 communication processing, logic moved to channel dispatcher
171 2008-04-17 Vladimir Krasnov <vladimirk@mainsoft.com>
173 * ActionMessageFilter.cs: fixed Match, match for "*" action
175 2008-04-17 Vladimir Krasnov <vladimirk@mainsoft.com>
177 * DispatchOperation.cs: fixed ProcessRequest, fault message creation
179 2008-04-10 Eyal Alaluf <eyala@mainsoft.com>
181 * DefaultMessageOperationFormatter.cs: Moved to BaseMessagesFormatter.cs.
182 * BaseMessagesFormatter.cs: Refactored so typed messages uses the classes
183 defined here instead of the other way around.
184 Added support for by-ref and out parameters.
185 Added support for XmlSerializerFormat serializaters..
186 * DispatchOperation.cs, ClientOperation.cs: Use BaseMessagesFormatter.Create
188 2008-04-09 Roei Erez <roeie@mainsoft.com>
190 * Remove unused nethod from previous commit
192 2008-04-08 Roei Erez <roeie@mainsoft.com>
194 * ChannelDispatcher.cs
196 - Add support for Endpoints property
197 - Remove the hack of 'endpoint_dispatcher' field
198 * ChannelDispatcherCollection.cs
199 - Add support for 'Attach' 'Detach'
200 * EndpointDispatcher.cs
201 - By default create MatchAllMessageFilter.
203 2008-02-17 Atsushi Enomoto <atsushi@ximian.com>
205 * EndpointDispatcher.cs : we don't need AddressFilter workaround
206 from Feb. 14 anymore.
208 2008-02-17 Atsushi Enomoto <atsushi@ximian.com>
210 * EndpointDispatcher.cs : after service method call, apply outgoing
211 headers and properties to the returned message.
213 2008-02-15 Atsushi Enomoto <atsushi@ximian.com>
215 * ChannelDispatcher.cs : populate DispatchOperations before applying
216 IEndpointBehaviors so that those behaviors can modify dispatch
219 2008-02-15 Atsushi Enomoto <atsushi@ximian.com>
221 * DispatchOperation.cs : Action may be null. For such cases, use
222 MessageDirection to determine the message description.
224 2008-02-15 Atsushi Enomoto <atsushi@ximian.com>
226 * EndpointAddressMessageFilter.cs : implement Match(MessageBuffer).
227 Use ordinal string comparison.
228 * PrefixEndpointAddressMessageFilter.cs : implement Match() (both).
230 2008-02-14 Atsushi Enomoto <atsushi@ximian.com>
232 * EndpointDispatcher.cs : moved AddressFilter application only when
233 DispatchOperation was not selected (it is sort of workaround).
235 2007-08-19 Atsushi Enomoto <atsushi@ximian.com>
237 * DefaultMessageOperationFormatter.cs : Fixed SerializeReply() for
238 message contract type to process result, not the parameter.
240 2007-08-19 Atsushi Enomoto <atsushi@ximian.com>
242 * SingletonInstanceContextProvider.cs : new.
244 2007-08-17 Atsushi Enomoto <atsushi@ximian.com>
246 * DefaultMessageOperationFormatter.cs : dependent changes on
247 message serializer and deserializer.
249 2007-03-24 Atsushi Enomoto <atsushi@ximian.com>
251 * DefaultMessageOperationFormatter.cs :
252 use it for deserialization as well.
254 2007-03-24 Atsushi Enomoto <atsushi@ximian.com>
256 * DefaultMessageOperationFormatter.cs : consider message contracts
257 during message serialization/deserialization.
259 2007-03-07 Atsushi Enomoto <atsushi@ximian.com>
261 * EndpointDispatcher.cs : now dispatcher-side foundation for token
262 negotiation is ready. Handle negotiation message on its own way.
263 * DispatchOperation.cs : instead of returning irrelevant SOAP Fault,
264 simply raise an error and let FaultConverter do better work.
266 2007-03-07 Atsushi Enomoto <atsushi@ximian.com>
268 * EndpointDispatcher.cs : use ErrorHandlers when error was raised.
269 Handle exceptions to make into SOAP Fault, using FaultConverter.
270 * ChannelDispatcher.cs : simply get ServiceEndpoint at Attach().
271 * ChannelDispatcherBase.cs : removed MonoTODOs.
273 2007-03-07 Atsushi Enomoto <atsushi@ximian.com>
275 * ChannelDispatcher.cs, DispatchRuntime.cs, EndpointDispatcher.cs :
276 moved most of request/input processing to EndpointDispatcher.cs.
277 Also, ChannelDispatcher now contains code for behavior
280 2007-03-07 Atsushi Enomoto <atsushi@ximian.com>
282 * ChannelDispatcher.cs : some cosmetic refactoring on error handling
285 2006-12-14 Atsushi Enomoto <atsushi@ximian.com>
287 * ChannelDispatcher.cs, DispatchRuntime.cs, DispatchOperation.cs :
288 Support OperationContext and OperationContextScope with
289 ServiceRuntimeChannel as its .ctor() input.
291 2006-12-14 Atsushi Enomoto <atsushi@ximian.com>
293 * DispatchRuntime.cs : raise an error when the DispatchOperation
294 returned null Message.
296 2006-10-18 Ankit Jain <jankit@novell.com>
298 * MexInstanceContextProvider.cs (HttpGetInstanceContextProvider): New.
299 * DispatchOperation.cs (DoProcessRequest): InstanceContext returned by
300 the provider can be null.
301 * EndpointAddressMessageFilter.cs (Match): Handle IncludeHostNameInComparison.
303 2006-10-12 Atsushi Enomoto <atsushi@ximian.com>
305 * DispatchOperation.cs : slightly improved exception message.
307 2006-10-06 Ankit Jain <jankit@novell.com>
309 * ChannelDispatcher.cs (ListenerLoopManager.StartLoopCore):
310 ReceiveRequest can return null.
312 2006-10-05 Atsushi Enomoto <atsushi@ximian.com>
314 * ClientRuntime.cs : added MaxFaultSize.
316 2006-10-05 Atsushi Enomoto <atsushi@ximian.com>
318 * ChannelDispatcher.cs : don't reject anonymous and null To.
320 2006-10-04 Ankit Jain <jankit@novell.com>
322 * ChannelDispatcher.cs (ListenerLoopManager.StartLoopCore): Reply with a
323 Fault message if message's To doesn't match the endpoint.
324 (ListenerLoopManager.CreateDestinationUnreachable): New.
325 * IInstanceContextProvider.cs: New.
326 * MexInstanceContextProvider.cs: New. InstanceContextProvider for
328 (MetadataExchange): Implementation of IMetadataExchange.
329 * DispatchRuntime.cs (InstanceContextProvider): Add missing property.
330 * DispatchOperation.cs (DoProcessRequest): Use InstanceContextProvider
331 if available to obtain service instance.
332 * EndpointDispatcher.cs (.ctor): Set AddressFilter to EndpointAddressMessageFilter.
333 * EndpointAddressMessageFilter.cs (Match): Implement.
335 2006-10-03 Atsushi Enomoto <atsushi@ximian.com>
337 * ClientRuntime.cs : added InteractiveChannelInitializer.
339 2006-09-12 Atsushi Enomoto <atsushi@ximian.com>
341 * DispatchOperation.cs : removed extra comment.
343 2006-09-08 Atsushi Enomoto <atsushi@ximian.com>
345 * DispatchOperation.cs : workaround to send exception detail.
347 2006-09-06 Atsushi Enomoto <atsushi@ximian.com>
349 * ICallContextInitializer.cs : new file.
350 * DispatchOperation.cs : use above.
351 Not sure if it works correctly though.
353 2006-08-28 Atsushi Enomoto <atsushi@ximian.com>
355 * DispatchOperation.cs : when there is an error during
356 ProcessRequest(), wrap the exception with MessageFault and return
359 2006-08-10 Duncan Mak <duncan@novell.com>
361 * ExceptionHandler.cs: New file.
363 * ServiceThrottle.cs (MaxConnections): Renamed to
364 MaxConcurrentSessions.
365 (MaxInstances): Renamed to MaxConcurrentInstances.
367 2006-07-27 Atsushi Enomoto <atsushi@ximian.com>
369 * IInteractiveChannelInitializer.cs : new file.
371 2006-07-14 Atsushi Enomoto <atsushi@ximian.com>
373 * IErrorHandler.cs : API updates.
375 2006-07-13 Atsushi Enomoto <atsushi@ximian.com>
377 * DispatchRuntime.cs :
378 it was selecting UnhandledOperation unexpectedly.
379 * DispatchOperation.cs : added FIXME comment.
381 2006-07-13 Atsushi Enomoto <atsushi@ximian.com>
383 * DefaultMessageOperationFormatter.cs : Remove hack for non-
384 (de)serializing Message-based methods. They are now moved to
385 ClientBase and ServiceHostBase to explicitly set
386 [Serialize|Deserialize][Request|Reply].
388 2006-07-12 Atsushi Enomoto <atsushi@ximian.com>
390 * DefaultMessageOperationFormatter.cs : don't omit action on
391 SerializeRequest. Do it in SerializeReply.
393 2006-07-12 Atsushi Enomoto <atsushi@ximian.com>
395 * DefaultMessageOperationFormatter.cs : When addressing version is
396 None, then omit reply action. This logic is moved from MessageImpl.
398 2006-07-11 Atsushi Enomoto <atsushi@ximian.com>
400 * DefaultMessageOperationFormatter.cs :
401 return message, not parameter[0]. Removed some extra FIXMEs.
403 2006-07-10 Atsushi Enomoto <atsushi@ximian.com>
405 * DefaultMessageOperationFormatter.cs : when the parameter is
406 Message and the return type is Message, then do not use
409 2006-07-07 Atsushi Enomoto <atsushi@ximian.com>
411 * PrefixEndpointAddressMessageFilter.cs, FaultContractInfo.cs :
412 new types in June CTP.
413 * ISharedInstanceSessionLifetime.cs:
415 * ChannelDispatcher.cs, MatchAllMessageFilter.cs, DispatchRuntime.cs,
416 DispatchOperation.cs, ClientRuntime.cs, MatchNoneMessageFilter.cs,
417 ClientOperation.cs, ActionMessageFilterTable.cs,
418 EndpointAddressMessageFilterTable.cs :
419 several minor fixes for June CTP.
421 2006-07-06 Atsushi Enomoto <atsushi@ximian.com>
423 * DispatchOperation.cs : MessageFault.DefaultAction vanished.
425 2006-07-05 Atsushi Enomoto <atsushi@ximian.com>
427 * IClientFormatter.cs, IClientMessageFormatter.cs,
428 IDispatchFormatter.cs, IDispatchMessageFormatter.cs :
429 renamed former to latter, for each.
431 2006-07-05 Atsushi Enomoto <atsushi@ximian.com>
433 * ChannelDispatcher.cs, DispatchRuntime.cs :
434 IRequestContext -> RequestContext.
436 2006-07-05 Atsushi Enomoto <atsushi@ximian.com>
438 * ChannelDispatcher.cs, IDispatchFormatter.cs,
439 DefaultMessageOperationFormatter.cs, IClientFormatter.cs,
440 DispatchOperation.cs, ClientOperation.cs :
441 some June CTP updates.
443 2006-06-22 Atsushi Enomoto <atsushi@ximian.com>
445 * DefaultMessageOperationFormatter.cs : implement SerializeRequest()
446 and DeserializeReply(). Now simple ClientBase<T> sample is working.
448 2006-06-22 Atsushi Enomoto <atsushi@ximian.com>
450 * ClientOperation.cs : added GetFormatter() to support message
451 serialization/deserialization.
452 * DispatchOperation.cs : made some internal members private
453 (they are exposed extraneously). Commented out debugging code.
455 2006-06-20 Atsushi Enomoto <atsushi@ximian.com>
457 * DefaultMessageOperationFormatter.cs : In SerializeReply(), use
458 custom BodyWriter() and use MessagePartDescription names. Now
459 return value and other (ref/out) parameters could be equivalently
460 serialized (at this method; to support them more love is needed).
462 2006-06-20 Atsushi Enomoto <atsushi@ximian.com>
464 * DefaultMessageOperationFormatter.cs :
465 Action for response is null (though it is likely conditional).
467 2006-06-20 Atsushi Enomoto <atsushi@ximian.com>
469 * DefaultMessageOperationFormatter.cs :
470 true DeserializeReply implementation using Message.CreateMessage()
471 with DataContractSerializer (not complete though).
473 2006-05-29 Atsushi Enomoto <atsushi@ximian.com>
475 * ChannelDispatcher.cs, DispatchOperation.cs,
476 ChannelDispatcherBase.cs :
477 some updated API fixes.
479 2006-05-29 Atsushi Enomoto <atsushi@ximian.com>
481 * EndpointDispatcher.cs : moved from Sys.ServiceModel.
483 2006-04-20 Atsushi Enomoto <atsushi@ximian.com>
485 * ClientRuntime.cs : some minor collection instantiation and comments.
487 2006-04-07 Atsushi Enomoto <atsushi@ximian.com>
489 * DispatchOperation.cs : Implemented internal MessageVersion.
490 hacked instance provision by using Activator.CreateInstance.
491 * DefaultMessageOperationFormatter.cs : fixed DeserializeRequest to
492 be functional. Implemented SerializeReply.
494 2006-04-05 Atsushi Enomoto <atsushi@ximian.com>
496 * DispatchOperation.cs : return SOAP fault message for nonexistent
498 * DefaultMessageOperationFormatter.cs : implemented
499 DeserializeRequest(), though there is no working example.
501 2006-03-17 Atsushi Enomoto <atsushi@ximian.com>
503 * DispatchOperation.cs : implemented logic to acquire
504 OperationDescription. Added code for default IDispatchFormatter
506 * DispatchRuntime.cs : fix warning.
507 * DefaultMessageOperationFormatter.cs : new file, for default
508 IDispatchFormatter implementation (not done yet).
509 * ChannelDispatcher.cs : create EndpointDispatcher in Attach and
510 bind to this instance.
512 2006-03-16 Atsushi Enomoto <atsushi@ximian.com>
514 * ChannelDispatcherCollection.cs : added parameterless ctor().
515 * ChannelDispatcher.cs DispatchRuntime.cs DispatchOperation.cs :
516 Set some initial field values as proved in unit tests.
517 Request/input processing is still ongoing.
519 2006-03-13 Atsushi Enomoto <atsushi@ximian.com>
521 * ChannelDispatcher.cs
523 DispatchOperation.cs : added request/input processing code.
525 2006-03-07 Atsushi Enomoto <atsushi@ximian.com>
527 * ChannelDispatcher.cs : Get "AcceptChannel" method without ambiguity.
529 2006-03-07 Atsushi Enomoto <atsushi@ximian.com>
531 * ChannelDispatcher.cs : Added request-processing code.
533 2006-03-06 Atsushi Enomoto <atsushi@ximian.com>
535 * ChannelDispatcher.cs : implement Attach() and Detach() more to work.
537 2006-02-23 Atsushi Enomoto <atsushi@ximian.com>
539 * DispatchBehavior.cs :
540 Dependent fixes for System.IdentityModel reorgainzation.
542 2006-02-23 Atsushi Enomoto <atsushi@ximian.com>
544 * FilterNodeQuotaExceededException.cs
545 FilterInvalidBodyAccessException.cs DispatchBehavior.cs
546 DispatchOperation.cs NavigatorInvalidBodyAccessException.cs
547 MatchNoneFilter.cs ActionFilter.cs
548 MultipleFilterMatchesException.cs Filter.cs
549 IInstanceContextInitializer.cs XPathFilter.cs
550 IDispatchOperationSelector.cs MatchAllFilter.cs
551 ActionFilterTable.cs EndpointAddressFilter.cs FilterTable.cs
552 EndpointFilterTable.cs XPathMessageContext.cs
553 IEndpointDispatcher.cs ProxyBehavior.cs
554 ProxyOperation.cs XPathFilterTable.cs
555 EndpointAddressFilterTable.cs InvalidBodyAccessException.cs
556 IFilterTable.cs IOperationInvoker.cs :
557 moved from System.ServiceModel due to the API changes.