1 2009-07-02 Atsushi Enomoto <atsushi@ximian.com>
3 * ChannelDispatcher.cs : when service instance is provided to the
4 ServiceHost, do not reject Type-less state.
6 2009-06-29 Atsushi Enomoto <atsushi@ximian.com>
8 * ChannelDispatcher.cs : do not iterate extra channel acceptance
9 and hence close channels a bit more gracefully.
11 2009-06-25 Atsushi Enomoto <atsushi@ximian.com>
13 * ChannelDispatcher.cs : instead of discarding channels, reuse them
14 unless it is closed by session manager (session manager does not
15 work, so channels are not actually closed automatically yet).
17 2009-06-25 Atsushi Enomoto <atsushi@ximian.com>
19 * SessionInstanceContextProvider.cs : new instance context provider.
21 2009-06-23 Atsushi Enomoto <atsushi@ximian.com>
23 * DispatchRuntime.cs : do not fill InstanceContextProvider here.
24 * ChannelDispatcher.cs : do it here instead.
25 * ChannelDispatcherCollection.cs : remove TODOs.
27 2009-06-23 Atsushi Enomoto <atsushi@ximian.com>
29 * InputOrReplyRequestProcessor.cs : bogus initialization.
31 2009-06-18 Atsushi Enomoto <atsushi@ximian.com>
33 * ChannelDispatcher.cs : significant changes:
34 - simplified Open/Close async.
35 - implement OnAbort().
36 - create ServiceThrottle when it is null.
37 - Channels are accepted as much as the throttle allows, and
38 process requests when accepted an input (now it holds more than
40 - Support ReceiveSynchronously and use Begin/EndAcceptChannel()
42 - Close all channels and the listener when it is closed.
43 - Cosmetic simplification on channel acceptor delegate creation.
45 2009-06-09 Atsushi Enomoto <atsushi@ximian.com>
47 * ChannelDispatcher.cs : avoid NRE (actually it should eliminate
48 Thread.Abort()). Added some comments on throttling.
50 2009-06-09 Atsushi Enomoto <atsushi@ximian.com>
52 * ServiceThrottle.cs : implement.
54 2009-06-08 Atsushi Enomoto <atsushi@ximian.com>
56 * ChannelDispatcher.cs :
57 Add call to base (see CommunicationObject change).
59 2009-06-01 Atsushi Enomoto <atsushi@ximian.com>
61 * ChannelDispatcher.cs : handle more errors gracefully.
63 2009-05-18 Atsushi Enomoto <atsushi@ximian.com>
65 * ErrorProcessingHandler.cs, InputOrReplyRequestProcessor.cs :
66 they also premise request-reply channel and broke duplex channels.
68 2009-05-13 Atsushi Enomoto <atsushi@ximian.com>
70 * ChannelDispatcher.cs : open channel before using it.
72 2009-05-13 Atsushi Enomoto <atsushi@ximian.com>
74 * ReplyHandler.cs, InputOrReplyRequestProcessor.cs,
75 MessageProcessingContext.cs : reply processing is also needed by
76 non-request channels (i.e. duplex). Current code basis lacked
77 such possibility. Quick fix by adding duplex support in
80 2009-05-13 Atsushi Enomoto <atsushi@ximian.com>
82 * ChannelDispatcher.cs, SecurityHandler.cs,
83 InputOrReplyRequestProcessor.cs, MessageProcessingContext.cs :
84 remove default communication timeouts from several types. They
85 bring bogus NRE. Instead, fill timeouts in ChannelDispatcher and
86 use it when required (it was actually *only* request processor).
88 2009-05-13 Atsushi Enomoto <atsushi@ximian.com>
90 * ChannelDispatcher.cs : wrong channel argument.
92 2009-04-27 Atsushi Enomoto <atsushi@ximian.com>
94 * DispatchRuntime.cs : some comment.
95 * ChannelDispatcher.cs : ongoing changes to handle listeners and
96 accepted channels at more precise state. Listeners are opened,
97 without accepting channels. Some setup code is done at OnOpen(),
98 while some are done at OnOpened().
100 2009-04-23 Atsushi Enomoto <atsushi@ximian.com>
102 * DispatchOperation.cs : implement GetFormatter() at service side too.
104 2009-04-01 Atsushi Enomoto <atsushi@ximian.com>
106 * OperationInvokeHandler.cs : replace MS copycat exception message.
108 2009-02-26 Atsushi Enomoto <atsushi@ximian.com>
110 * ClientRuntime.cs : fill contractType in .ctor().
112 2009-02-04 Atsushi Enomoto <atsushi@ximian.com>
114 * BaseMessagesFormatter.cs : do not use non-2.1 CreateInstance().
116 2008-06-18 Noam Lampert <noaml@mainsoft.com>
118 * ChannelDispatcher.cs: Avoid aborting host process on faulty input message.
120 2008-05-22 Noam Lampert <noaml@mainsoft.com>
122 * OperationInvokeHandler.cs: Only return fault reply when TargetInvocation occured (not other internal
123 errors. Serlialize the correct (inner) exception.
125 2008-05-22 Roei Erez <roeie@mainsoft.com>
126 * fix ContractDescription.GetContract implementation
127 * Refactor Request processing
128 * Add support for message inspectors
129 * Add support for InstanceContextProvider & InstanceProvider, including lifecycles events
130 like: ReleaseServiceInstance, Open, Close...
131 * Add relevant test cases.
133 2008-05-01 Eyal Alaluf <eyala@mainsoft.com>
135 * BaseMessagesFormatter.cs: Handle methods with out parameters that return
137 * DispatchOperation.cs, IOperationInvoker.cs: Simplify method invocation.
139 2008-04-22 Igor Zelmanovich <igorz@mainsoft.com>
141 * DispatchOperation.cs: removed dependency on OperationDescription,
142 allows usage of custom channel dispatcher without endpoint was explicitly
145 2008-04-22 Igor Zelmanovich <igorz@mainsoft.com>
147 * MexInstanceContextProvider.cs - remove unused code.
149 2008-04-21 Roei Erez <roeie@mainsoft.com>
151 * ChannelDispatcher.cs - Change order of Dispatcher shutdown
153 2008-04-17 Vladimir Krasnov <vladimirk@mainsoft.com>
155 * ChannelDispatcher.cs, EndpointDispatcher.cs: removed dependency on
156 ServiceDescription/ServiceEndpoint, allows usage of channel dispatcher
157 without endpoint was explicitly built
158 * EndpointDispatcher.cs: Filters lazy evaluation, refactored
159 communication processing, logic moved to channel dispatcher
161 2008-04-17 Vladimir Krasnov <vladimirk@mainsoft.com>
163 * ActionMessageFilter.cs: fixed Match, match for "*" action
165 2008-04-17 Vladimir Krasnov <vladimirk@mainsoft.com>
167 * DispatchOperation.cs: fixed ProcessRequest, fault message creation
169 2008-04-10 Eyal Alaluf <eyala@mainsoft.com>
171 * DefaultMessageOperationFormatter.cs: Moved to BaseMessagesFormatter.cs.
172 * BaseMessagesFormatter.cs: Refactored so typed messages uses the classes
173 defined here instead of the other way around.
174 Added support for by-ref and out parameters.
175 Added support for XmlSerializerFormat serializaters..
176 * DispatchOperation.cs, ClientOperation.cs: Use BaseMessagesFormatter.Create
178 2008-04-09 Roei Erez <roeie@mainsoft.com>
180 * Remove unused nethod from previous commit
182 2008-04-08 Roei Erez <roeie@mainsoft.com>
184 * ChannelDispatcher.cs
186 - Add support for Endpoints property
187 - Remove the hack of 'endpoint_dispatcher' field
188 * ChannelDispatcherCollection.cs
189 - Add support for 'Attach' 'Detach'
190 * EndpointDispatcher.cs
191 - By default create MatchAllMessageFilter.
193 2008-02-17 Atsushi Enomoto <atsushi@ximian.com>
195 * EndpointDispatcher.cs : we don't need AddressFilter workaround
196 from Feb. 14 anymore.
198 2008-02-17 Atsushi Enomoto <atsushi@ximian.com>
200 * EndpointDispatcher.cs : after service method call, apply outgoing
201 headers and properties to the returned message.
203 2008-02-15 Atsushi Enomoto <atsushi@ximian.com>
205 * ChannelDispatcher.cs : populate DispatchOperations before applying
206 IEndpointBehaviors so that those behaviors can modify dispatch
209 2008-02-15 Atsushi Enomoto <atsushi@ximian.com>
211 * DispatchOperation.cs : Action may be null. For such cases, use
212 MessageDirection to determine the message description.
214 2008-02-15 Atsushi Enomoto <atsushi@ximian.com>
216 * EndpointAddressMessageFilter.cs : implement Match(MessageBuffer).
217 Use ordinal string comparison.
218 * PrefixEndpointAddressMessageFilter.cs : implement Match() (both).
220 2008-02-14 Atsushi Enomoto <atsushi@ximian.com>
222 * EndpointDispatcher.cs : moved AddressFilter application only when
223 DispatchOperation was not selected (it is sort of workaround).
225 2007-08-19 Atsushi Enomoto <atsushi@ximian.com>
227 * DefaultMessageOperationFormatter.cs : Fixed SerializeReply() for
228 message contract type to process result, not the parameter.
230 2007-08-19 Atsushi Enomoto <atsushi@ximian.com>
232 * SingletonInstanceContextProvider.cs : new.
234 2007-08-17 Atsushi Enomoto <atsushi@ximian.com>
236 * DefaultMessageOperationFormatter.cs : dependent changes on
237 message serializer and deserializer.
239 2007-03-24 Atsushi Enomoto <atsushi@ximian.com>
241 * DefaultMessageOperationFormatter.cs :
242 use it for deserialization as well.
244 2007-03-24 Atsushi Enomoto <atsushi@ximian.com>
246 * DefaultMessageOperationFormatter.cs : consider message contracts
247 during message serialization/deserialization.
249 2007-03-07 Atsushi Enomoto <atsushi@ximian.com>
251 * EndpointDispatcher.cs : now dispatcher-side foundation for token
252 negotiation is ready. Handle negotiation message on its own way.
253 * DispatchOperation.cs : instead of returning irrelevant SOAP Fault,
254 simply raise an error and let FaultConverter do better work.
256 2007-03-07 Atsushi Enomoto <atsushi@ximian.com>
258 * EndpointDispatcher.cs : use ErrorHandlers when error was raised.
259 Handle exceptions to make into SOAP Fault, using FaultConverter.
260 * ChannelDispatcher.cs : simply get ServiceEndpoint at Attach().
261 * ChannelDispatcherBase.cs : removed MonoTODOs.
263 2007-03-07 Atsushi Enomoto <atsushi@ximian.com>
265 * ChannelDispatcher.cs, DispatchRuntime.cs, EndpointDispatcher.cs :
266 moved most of request/input processing to EndpointDispatcher.cs.
267 Also, ChannelDispatcher now contains code for behavior
270 2007-03-07 Atsushi Enomoto <atsushi@ximian.com>
272 * ChannelDispatcher.cs : some cosmetic refactoring on error handling
275 2006-12-14 Atsushi Enomoto <atsushi@ximian.com>
277 * ChannelDispatcher.cs, DispatchRuntime.cs, DispatchOperation.cs :
278 Support OperationContext and OperationContextScope with
279 ServiceRuntimeChannel as its .ctor() input.
281 2006-12-14 Atsushi Enomoto <atsushi@ximian.com>
283 * DispatchRuntime.cs : raise an error when the DispatchOperation
284 returned null Message.
286 2006-10-18 Ankit Jain <jankit@novell.com>
288 * MexInstanceContextProvider.cs (HttpGetInstanceContextProvider): New.
289 * DispatchOperation.cs (DoProcessRequest): InstanceContext returned by
290 the provider can be null.
291 * EndpointAddressMessageFilter.cs (Match): Handle IncludeHostNameInComparison.
293 2006-10-12 Atsushi Enomoto <atsushi@ximian.com>
295 * DispatchOperation.cs : slightly improved exception message.
297 2006-10-06 Ankit Jain <jankit@novell.com>
299 * ChannelDispatcher.cs (ListenerLoopManager.StartLoopCore):
300 ReceiveRequest can return null.
302 2006-10-05 Atsushi Enomoto <atsushi@ximian.com>
304 * ClientRuntime.cs : added MaxFaultSize.
306 2006-10-05 Atsushi Enomoto <atsushi@ximian.com>
308 * ChannelDispatcher.cs : don't reject anonymous and null To.
310 2006-10-04 Ankit Jain <jankit@novell.com>
312 * ChannelDispatcher.cs (ListenerLoopManager.StartLoopCore): Reply with a
313 Fault message if message's To doesn't match the endpoint.
314 (ListenerLoopManager.CreateDestinationUnreachable): New.
315 * IInstanceContextProvider.cs: New.
316 * MexInstanceContextProvider.cs: New. InstanceContextProvider for
318 (MetadataExchange): Implementation of IMetadataExchange.
319 * DispatchRuntime.cs (InstanceContextProvider): Add missing property.
320 * DispatchOperation.cs (DoProcessRequest): Use InstanceContextProvider
321 if available to obtain service instance.
322 * EndpointDispatcher.cs (.ctor): Set AddressFilter to EndpointAddressMessageFilter.
323 * EndpointAddressMessageFilter.cs (Match): Implement.
325 2006-10-03 Atsushi Enomoto <atsushi@ximian.com>
327 * ClientRuntime.cs : added InteractiveChannelInitializer.
329 2006-09-12 Atsushi Enomoto <atsushi@ximian.com>
331 * DispatchOperation.cs : removed extra comment.
333 2006-09-08 Atsushi Enomoto <atsushi@ximian.com>
335 * DispatchOperation.cs : workaround to send exception detail.
337 2006-09-06 Atsushi Enomoto <atsushi@ximian.com>
339 * ICallContextInitializer.cs : new file.
340 * DispatchOperation.cs : use above.
341 Not sure if it works correctly though.
343 2006-08-28 Atsushi Enomoto <atsushi@ximian.com>
345 * DispatchOperation.cs : when there is an error during
346 ProcessRequest(), wrap the exception with MessageFault and return
349 2006-08-10 Duncan Mak <duncan@novell.com>
351 * ExceptionHandler.cs: New file.
353 * ServiceThrottle.cs (MaxConnections): Renamed to
354 MaxConcurrentSessions.
355 (MaxInstances): Renamed to MaxConcurrentInstances.
357 2006-07-27 Atsushi Enomoto <atsushi@ximian.com>
359 * IInteractiveChannelInitializer.cs : new file.
361 2006-07-14 Atsushi Enomoto <atsushi@ximian.com>
363 * IErrorHandler.cs : API updates.
365 2006-07-13 Atsushi Enomoto <atsushi@ximian.com>
367 * DispatchRuntime.cs :
368 it was selecting UnhandledOperation unexpectedly.
369 * DispatchOperation.cs : added FIXME comment.
371 2006-07-13 Atsushi Enomoto <atsushi@ximian.com>
373 * DefaultMessageOperationFormatter.cs : Remove hack for non-
374 (de)serializing Message-based methods. They are now moved to
375 ClientBase and ServiceHostBase to explicitly set
376 [Serialize|Deserialize][Request|Reply].
378 2006-07-12 Atsushi Enomoto <atsushi@ximian.com>
380 * DefaultMessageOperationFormatter.cs : don't omit action on
381 SerializeRequest. Do it in SerializeReply.
383 2006-07-12 Atsushi Enomoto <atsushi@ximian.com>
385 * DefaultMessageOperationFormatter.cs : When addressing version is
386 None, then omit reply action. This logic is moved from MessageImpl.
388 2006-07-11 Atsushi Enomoto <atsushi@ximian.com>
390 * DefaultMessageOperationFormatter.cs :
391 return message, not parameter[0]. Removed some extra FIXMEs.
393 2006-07-10 Atsushi Enomoto <atsushi@ximian.com>
395 * DefaultMessageOperationFormatter.cs : when the parameter is
396 Message and the return type is Message, then do not use
399 2006-07-07 Atsushi Enomoto <atsushi@ximian.com>
401 * PrefixEndpointAddressMessageFilter.cs, FaultContractInfo.cs :
402 new types in June CTP.
403 * ISharedInstanceSessionLifetime.cs:
405 * ChannelDispatcher.cs, MatchAllMessageFilter.cs, DispatchRuntime.cs,
406 DispatchOperation.cs, ClientRuntime.cs, MatchNoneMessageFilter.cs,
407 ClientOperation.cs, ActionMessageFilterTable.cs,
408 EndpointAddressMessageFilterTable.cs :
409 several minor fixes for June CTP.
411 2006-07-06 Atsushi Enomoto <atsushi@ximian.com>
413 * DispatchOperation.cs : MessageFault.DefaultAction vanished.
415 2006-07-05 Atsushi Enomoto <atsushi@ximian.com>
417 * IClientFormatter.cs, IClientMessageFormatter.cs,
418 IDispatchFormatter.cs, IDispatchMessageFormatter.cs :
419 renamed former to latter, for each.
421 2006-07-05 Atsushi Enomoto <atsushi@ximian.com>
423 * ChannelDispatcher.cs, DispatchRuntime.cs :
424 IRequestContext -> RequestContext.
426 2006-07-05 Atsushi Enomoto <atsushi@ximian.com>
428 * ChannelDispatcher.cs, IDispatchFormatter.cs,
429 DefaultMessageOperationFormatter.cs, IClientFormatter.cs,
430 DispatchOperation.cs, ClientOperation.cs :
431 some June CTP updates.
433 2006-06-22 Atsushi Enomoto <atsushi@ximian.com>
435 * DefaultMessageOperationFormatter.cs : implement SerializeRequest()
436 and DeserializeReply(). Now simple ClientBase<T> sample is working.
438 2006-06-22 Atsushi Enomoto <atsushi@ximian.com>
440 * ClientOperation.cs : added GetFormatter() to support message
441 serialization/deserialization.
442 * DispatchOperation.cs : made some internal members private
443 (they are exposed extraneously). Commented out debugging code.
445 2006-06-20 Atsushi Enomoto <atsushi@ximian.com>
447 * DefaultMessageOperationFormatter.cs : In SerializeReply(), use
448 custom BodyWriter() and use MessagePartDescription names. Now
449 return value and other (ref/out) parameters could be equivalently
450 serialized (at this method; to support them more love is needed).
452 2006-06-20 Atsushi Enomoto <atsushi@ximian.com>
454 * DefaultMessageOperationFormatter.cs :
455 Action for response is null (though it is likely conditional).
457 2006-06-20 Atsushi Enomoto <atsushi@ximian.com>
459 * DefaultMessageOperationFormatter.cs :
460 true DeserializeReply implementation using Message.CreateMessage()
461 with DataContractSerializer (not complete though).
463 2006-05-29 Atsushi Enomoto <atsushi@ximian.com>
465 * ChannelDispatcher.cs, DispatchOperation.cs,
466 ChannelDispatcherBase.cs :
467 some updated API fixes.
469 2006-05-29 Atsushi Enomoto <atsushi@ximian.com>
471 * EndpointDispatcher.cs : moved from Sys.ServiceModel.
473 2006-04-20 Atsushi Enomoto <atsushi@ximian.com>
475 * ClientRuntime.cs : some minor collection instantiation and comments.
477 2006-04-07 Atsushi Enomoto <atsushi@ximian.com>
479 * DispatchOperation.cs : Implemented internal MessageVersion.
480 hacked instance provision by using Activator.CreateInstance.
481 * DefaultMessageOperationFormatter.cs : fixed DeserializeRequest to
482 be functional. Implemented SerializeReply.
484 2006-04-05 Atsushi Enomoto <atsushi@ximian.com>
486 * DispatchOperation.cs : return SOAP fault message for nonexistent
488 * DefaultMessageOperationFormatter.cs : implemented
489 DeserializeRequest(), though there is no working example.
491 2006-03-17 Atsushi Enomoto <atsushi@ximian.com>
493 * DispatchOperation.cs : implemented logic to acquire
494 OperationDescription. Added code for default IDispatchFormatter
496 * DispatchRuntime.cs : fix warning.
497 * DefaultMessageOperationFormatter.cs : new file, for default
498 IDispatchFormatter implementation (not done yet).
499 * ChannelDispatcher.cs : create EndpointDispatcher in Attach and
500 bind to this instance.
502 2006-03-16 Atsushi Enomoto <atsushi@ximian.com>
504 * ChannelDispatcherCollection.cs : added parameterless ctor().
505 * ChannelDispatcher.cs DispatchRuntime.cs DispatchOperation.cs :
506 Set some initial field values as proved in unit tests.
507 Request/input processing is still ongoing.
509 2006-03-13 Atsushi Enomoto <atsushi@ximian.com>
511 * ChannelDispatcher.cs
513 DispatchOperation.cs : added request/input processing code.
515 2006-03-07 Atsushi Enomoto <atsushi@ximian.com>
517 * ChannelDispatcher.cs : Get "AcceptChannel" method without ambiguity.
519 2006-03-07 Atsushi Enomoto <atsushi@ximian.com>
521 * ChannelDispatcher.cs : Added request-processing code.
523 2006-03-06 Atsushi Enomoto <atsushi@ximian.com>
525 * ChannelDispatcher.cs : implement Attach() and Detach() more to work.
527 2006-02-23 Atsushi Enomoto <atsushi@ximian.com>
529 * DispatchBehavior.cs :
530 Dependent fixes for System.IdentityModel reorgainzation.
532 2006-02-23 Atsushi Enomoto <atsushi@ximian.com>
534 * FilterNodeQuotaExceededException.cs
535 FilterInvalidBodyAccessException.cs DispatchBehavior.cs
536 DispatchOperation.cs NavigatorInvalidBodyAccessException.cs
537 MatchNoneFilter.cs ActionFilter.cs
538 MultipleFilterMatchesException.cs Filter.cs
539 IInstanceContextInitializer.cs XPathFilter.cs
540 IDispatchOperationSelector.cs MatchAllFilter.cs
541 ActionFilterTable.cs EndpointAddressFilter.cs FilterTable.cs
542 EndpointFilterTable.cs XPathMessageContext.cs
543 IEndpointDispatcher.cs ProxyBehavior.cs
544 ProxyOperation.cs XPathFilterTable.cs
545 EndpointAddressFilterTable.cs InvalidBodyAccessException.cs
546 IFilterTable.cs IOperationInvoker.cs :
547 moved from System.ServiceModel due to the API changes.