2009-08-04 Atsushi Enomoto * ReplyHandler.cs : there is better way to check IsOneWay. 2009-08-04 Atsushi Enomoto * OperationInvokerHandler.cs : One way operation has no reply. * ReplyHandler.cs : ditto. 2009-07-31 Atsushi Enomoto * ChannelDispatcher.cs : raise error on multiple endpoint match (documented at EndpointDispatcher.FilterPriority). 2009-07-28 Atsushi Enomoto * ChannelDispatcher.cs : move Open() inside acceptor lock, so that the channel does not have to be fired Receive() before Open(). 2009-07-14 Atsushi Enomoto * DispatchRuntime.cs : add ValidateMustUnderstand. * DispatchOperation.cs : add AutoDisposeParameters. 2009-07-02 Atsushi Enomoto * ChannelDispatcher.cs : when service instance is provided to the ServiceHost, do not reject Type-less state. 2009-06-29 Atsushi Enomoto * ChannelDispatcher.cs : do not iterate extra channel acceptance and hence close channels a bit more gracefully. 2009-06-25 Atsushi Enomoto * ChannelDispatcher.cs : instead of discarding channels, reuse them unless it is closed by session manager (session manager does not work, so channels are not actually closed automatically yet). 2009-06-25 Atsushi Enomoto * SessionInstanceContextProvider.cs : new instance context provider. 2009-06-23 Atsushi Enomoto * DispatchRuntime.cs : do not fill InstanceContextProvider here. * ChannelDispatcher.cs : do it here instead. * ChannelDispatcherCollection.cs : remove TODOs. 2009-06-23 Atsushi Enomoto * InputOrReplyRequestProcessor.cs : bogus initialization. 2009-06-18 Atsushi Enomoto * ChannelDispatcher.cs : significant changes: - simplified Open/Close async. - implement OnAbort(). - create ServiceThrottle when it is null. - Channels are accepted as much as the throttle allows, and process requests when accepted an input (now it holds more than one channel). - Support ReceiveSynchronously and use Begin/EndAcceptChannel() for async pattern. - Close all channels and the listener when it is closed. - Cosmetic simplification on channel acceptor delegate creation. 2009-06-09 Atsushi Enomoto * ChannelDispatcher.cs : avoid NRE (actually it should eliminate Thread.Abort()). Added some comments on throttling. 2009-06-09 Atsushi Enomoto * ServiceThrottle.cs : implement. 2009-06-08 Atsushi Enomoto * ChannelDispatcher.cs : Add call to base (see CommunicationObject change). 2009-06-01 Atsushi Enomoto * ChannelDispatcher.cs : handle more errors gracefully. 2009-05-18 Atsushi Enomoto * ErrorProcessingHandler.cs, InputOrReplyRequestProcessor.cs : they also premise request-reply channel and broke duplex channels. 2009-05-13 Atsushi Enomoto * ChannelDispatcher.cs : open channel before using it. 2009-05-13 Atsushi Enomoto * ReplyHandler.cs, InputOrReplyRequestProcessor.cs, MessageProcessingContext.cs : reply processing is also needed by non-request channels (i.e. duplex). Current code basis lacked such possibility. Quick fix by adding duplex support in ReplyHandler so far. 2009-05-13 Atsushi Enomoto * ChannelDispatcher.cs, SecurityHandler.cs, InputOrReplyRequestProcessor.cs, MessageProcessingContext.cs : remove default communication timeouts from several types. They bring bogus NRE. Instead, fill timeouts in ChannelDispatcher and use it when required (it was actually *only* request processor). 2009-05-13 Atsushi Enomoto * ChannelDispatcher.cs : wrong channel argument. 2009-04-27 Atsushi Enomoto * DispatchRuntime.cs : some comment. * ChannelDispatcher.cs : ongoing changes to handle listeners and accepted channels at more precise state. Listeners are opened, without accepting channels. Some setup code is done at OnOpen(), while some are done at OnOpened(). 2009-04-23 Atsushi Enomoto * DispatchOperation.cs : implement GetFormatter() at service side too. 2009-04-01 Atsushi Enomoto * OperationInvokeHandler.cs : replace MS copycat exception message. 2009-02-26 Atsushi Enomoto * ClientRuntime.cs : fill contractType in .ctor(). 2009-02-04 Atsushi Enomoto * BaseMessagesFormatter.cs : do not use non-2.1 CreateInstance(). 2008-06-18 Noam Lampert * ChannelDispatcher.cs: Avoid aborting host process on faulty input message. 2008-05-22 Noam Lampert * OperationInvokeHandler.cs: Only return fault reply when TargetInvocation occured (not other internal errors. Serlialize the correct (inner) exception. 2008-05-22 Roei Erez * fix ContractDescription.GetContract implementation * Refactor Request processing * Add support for message inspectors * Add support for InstanceContextProvider & InstanceProvider, including lifecycles events like: ReleaseServiceInstance, Open, Close... * Add relevant test cases. 2008-05-01 Eyal Alaluf * BaseMessagesFormatter.cs: Handle methods with out parameters that return void. * DispatchOperation.cs, IOperationInvoker.cs: Simplify method invocation. 2008-04-22 Igor Zelmanovich * DispatchOperation.cs: removed dependency on OperationDescription, allows usage of custom channel dispatcher without endpoint was explicitly built 2008-04-22 Igor Zelmanovich * MexInstanceContextProvider.cs - remove unused code. 2008-04-21 Roei Erez * ChannelDispatcher.cs - Change order of Dispatcher shutdown 2008-04-17 Vladimir Krasnov * ChannelDispatcher.cs, EndpointDispatcher.cs: removed dependency on ServiceDescription/ServiceEndpoint, allows usage of channel dispatcher without endpoint was explicitly built * EndpointDispatcher.cs: Filters lazy evaluation, refactored communication processing, logic moved to channel dispatcher 2008-04-17 Vladimir Krasnov * ActionMessageFilter.cs: fixed Match, match for "*" action 2008-04-17 Vladimir Krasnov * DispatchOperation.cs: fixed ProcessRequest, fault message creation 2008-04-10 Eyal Alaluf * DefaultMessageOperationFormatter.cs: Moved to BaseMessagesFormatter.cs. * BaseMessagesFormatter.cs: Refactored so typed messages uses the classes defined here instead of the other way around. Added support for by-ref and out parameters. Added support for XmlSerializerFormat serializaters.. * DispatchOperation.cs, ClientOperation.cs: Use BaseMessagesFormatter.Create 2008-04-09 Roei Erez * Remove unused nethod from previous commit 2008-04-08 Roei Erez * ChannelDispatcher.cs - fix 'Attach' logic - Add support for Endpoints property - Remove the hack of 'endpoint_dispatcher' field * ChannelDispatcherCollection.cs - Add support for 'Attach' 'Detach' * EndpointDispatcher.cs - By default create MatchAllMessageFilter. 2008-02-17 Atsushi Enomoto * EndpointDispatcher.cs : we don't need AddressFilter workaround from Feb. 14 anymore. 2008-02-17 Atsushi Enomoto * EndpointDispatcher.cs : after service method call, apply outgoing headers and properties to the returned message. 2008-02-15 Atsushi Enomoto * ChannelDispatcher.cs : populate DispatchOperations before applying IEndpointBehaviors so that those behaviors can modify dispatch operations. 2008-02-15 Atsushi Enomoto * DispatchOperation.cs : Action may be null. For such cases, use MessageDirection to determine the message description. 2008-02-15 Atsushi Enomoto * EndpointAddressMessageFilter.cs : implement Match(MessageBuffer). Use ordinal string comparison. * PrefixEndpointAddressMessageFilter.cs : implement Match() (both). 2008-02-14 Atsushi Enomoto * EndpointDispatcher.cs : moved AddressFilter application only when DispatchOperation was not selected (it is sort of workaround). 2007-08-19 Atsushi Enomoto * DefaultMessageOperationFormatter.cs : Fixed SerializeReply() for message contract type to process result, not the parameter. 2007-08-19 Atsushi Enomoto * SingletonInstanceContextProvider.cs : new. 2007-08-17 Atsushi Enomoto * DefaultMessageOperationFormatter.cs : dependent changes on message serializer and deserializer. 2007-03-24 Atsushi Enomoto * DefaultMessageOperationFormatter.cs : use it for deserialization as well. 2007-03-24 Atsushi Enomoto * DefaultMessageOperationFormatter.cs : consider message contracts during message serialization/deserialization. 2007-03-07 Atsushi Enomoto * EndpointDispatcher.cs : now dispatcher-side foundation for token negotiation is ready. Handle negotiation message on its own way. * DispatchOperation.cs : instead of returning irrelevant SOAP Fault, simply raise an error and let FaultConverter do better work. 2007-03-07 Atsushi Enomoto * EndpointDispatcher.cs : use ErrorHandlers when error was raised. Handle exceptions to make into SOAP Fault, using FaultConverter. * ChannelDispatcher.cs : simply get ServiceEndpoint at Attach(). * ChannelDispatcherBase.cs : removed MonoTODOs. 2007-03-07 Atsushi Enomoto * ChannelDispatcher.cs, DispatchRuntime.cs, EndpointDispatcher.cs : moved most of request/input processing to EndpointDispatcher.cs. Also, ChannelDispatcher now contains code for behavior initialization. 2007-03-07 Atsushi Enomoto * ChannelDispatcher.cs : some cosmetic refactoring on error handling with comments. 2006-12-14 Atsushi Enomoto * ChannelDispatcher.cs, DispatchRuntime.cs, DispatchOperation.cs : Support OperationContext and OperationContextScope with ServiceRuntimeChannel as its .ctor() input. 2006-12-14 Atsushi Enomoto * DispatchRuntime.cs : raise an error when the DispatchOperation returned null Message. 2006-10-18 Ankit Jain * MexInstanceContextProvider.cs (HttpGetInstanceContextProvider): New. * DispatchOperation.cs (DoProcessRequest): InstanceContext returned by the provider can be null. * EndpointAddressMessageFilter.cs (Match): Handle IncludeHostNameInComparison. 2006-10-12 Atsushi Enomoto * DispatchOperation.cs : slightly improved exception message. 2006-10-06 Ankit Jain * ChannelDispatcher.cs (ListenerLoopManager.StartLoopCore): ReceiveRequest can return null. 2006-10-05 Atsushi Enomoto * ClientRuntime.cs : added MaxFaultSize. 2006-10-05 Atsushi Enomoto * ChannelDispatcher.cs : don't reject anonymous and null To. 2006-10-04 Ankit Jain * ChannelDispatcher.cs (ListenerLoopManager.StartLoopCore): Reply with a Fault message if message's To doesn't match the endpoint. (ListenerLoopManager.CreateDestinationUnreachable): New. * IInstanceContextProvider.cs: New. * MexInstanceContextProvider.cs: New. InstanceContextProvider for MetadataExchange. (MetadataExchange): Implementation of IMetadataExchange. * DispatchRuntime.cs (InstanceContextProvider): Add missing property. * DispatchOperation.cs (DoProcessRequest): Use InstanceContextProvider if available to obtain service instance. * EndpointDispatcher.cs (.ctor): Set AddressFilter to EndpointAddressMessageFilter. * EndpointAddressMessageFilter.cs (Match): Implement. 2006-10-03 Atsushi Enomoto * ClientRuntime.cs : added InteractiveChannelInitializer. 2006-09-12 Atsushi Enomoto * DispatchOperation.cs : removed extra comment. 2006-09-08 Atsushi Enomoto * DispatchOperation.cs : workaround to send exception detail. 2006-09-06 Atsushi Enomoto * ICallContextInitializer.cs : new file. * DispatchOperation.cs : use above. Not sure if it works correctly though. 2006-08-28 Atsushi Enomoto * DispatchOperation.cs : when there is an error during ProcessRequest(), wrap the exception with MessageFault and return a fault message. 2006-08-10 Duncan Mak * ExceptionHandler.cs: New file. * ServiceThrottle.cs (MaxConnections): Renamed to MaxConcurrentSessions. (MaxInstances): Renamed to MaxConcurrentInstances. 2006-07-27 Atsushi Enomoto * IInteractiveChannelInitializer.cs : new file. 2006-07-14 Atsushi Enomoto * IErrorHandler.cs : API updates. 2006-07-13 Atsushi Enomoto * DispatchRuntime.cs : it was selecting UnhandledOperation unexpectedly. * DispatchOperation.cs : added FIXME comment. 2006-07-13 Atsushi Enomoto * DefaultMessageOperationFormatter.cs : Remove hack for non- (de)serializing Message-based methods. They are now moved to ClientBase and ServiceHostBase to explicitly set [Serialize|Deserialize][Request|Reply]. 2006-07-12 Atsushi Enomoto * DefaultMessageOperationFormatter.cs : don't omit action on SerializeRequest. Do it in SerializeReply. 2006-07-12 Atsushi Enomoto * DefaultMessageOperationFormatter.cs : When addressing version is None, then omit reply action. This logic is moved from MessageImpl. 2006-07-11 Atsushi Enomoto * DefaultMessageOperationFormatter.cs : return message, not parameter[0]. Removed some extra FIXMEs. 2006-07-10 Atsushi Enomoto * DefaultMessageOperationFormatter.cs : when the parameter is Message and the return type is Message, then do not use XmlObjectSerializer. 2006-07-07 Atsushi Enomoto * PrefixEndpointAddressMessageFilter.cs, FaultContractInfo.cs : new types in June CTP. * ISharedInstanceSessionLifetime.cs: removed in June CTP. * ChannelDispatcher.cs, MatchAllMessageFilter.cs, DispatchRuntime.cs, DispatchOperation.cs, ClientRuntime.cs, MatchNoneMessageFilter.cs, ClientOperation.cs, ActionMessageFilterTable.cs, EndpointAddressMessageFilterTable.cs : several minor fixes for June CTP. 2006-07-06 Atsushi Enomoto * DispatchOperation.cs : MessageFault.DefaultAction vanished. 2006-07-05 Atsushi Enomoto * IClientFormatter.cs, IClientMessageFormatter.cs, IDispatchFormatter.cs, IDispatchMessageFormatter.cs : renamed former to latter, for each. 2006-07-05 Atsushi Enomoto * ChannelDispatcher.cs, DispatchRuntime.cs : IRequestContext -> RequestContext. 2006-07-05 Atsushi Enomoto * ChannelDispatcher.cs, IDispatchFormatter.cs, DefaultMessageOperationFormatter.cs, IClientFormatter.cs, DispatchOperation.cs, ClientOperation.cs : some June CTP updates. 2006-06-22 Atsushi Enomoto * DefaultMessageOperationFormatter.cs : implement SerializeRequest() and DeserializeReply(). Now simple ClientBase sample is working. 2006-06-22 Atsushi Enomoto * ClientOperation.cs : added GetFormatter() to support message serialization/deserialization. * DispatchOperation.cs : made some internal members private (they are exposed extraneously). Commented out debugging code. 2006-06-20 Atsushi Enomoto * DefaultMessageOperationFormatter.cs : In SerializeReply(), use custom BodyWriter() and use MessagePartDescription names. Now return value and other (ref/out) parameters could be equivalently serialized (at this method; to support them more love is needed). 2006-06-20 Atsushi Enomoto * DefaultMessageOperationFormatter.cs : Action for response is null (though it is likely conditional). 2006-06-20 Atsushi Enomoto * DefaultMessageOperationFormatter.cs : true DeserializeReply implementation using Message.CreateMessage() with DataContractSerializer (not complete though). 2006-05-29 Atsushi Enomoto * ChannelDispatcher.cs, DispatchOperation.cs, ChannelDispatcherBase.cs : some updated API fixes. 2006-05-29 Atsushi Enomoto * EndpointDispatcher.cs : moved from Sys.ServiceModel. 2006-04-20 Atsushi Enomoto * ClientRuntime.cs : some minor collection instantiation and comments. 2006-04-07 Atsushi Enomoto * DispatchOperation.cs : Implemented internal MessageVersion. hacked instance provision by using Activator.CreateInstance. * DefaultMessageOperationFormatter.cs : fixed DeserializeRequest to be functional. Implemented SerializeReply. 2006-04-05 Atsushi Enomoto * DispatchOperation.cs : return SOAP fault message for nonexistent request Action. * DefaultMessageOperationFormatter.cs : implemented DeserializeRequest(), though there is no working example. 2006-03-17 Atsushi Enomoto * DispatchOperation.cs : implemented logic to acquire OperationDescription. Added code for default IDispatchFormatter implementation. * DispatchRuntime.cs : fix warning. * DefaultMessageOperationFormatter.cs : new file, for default IDispatchFormatter implementation (not done yet). * ChannelDispatcher.cs : create EndpointDispatcher in Attach and bind to this instance. 2006-03-16 Atsushi Enomoto * ChannelDispatcherCollection.cs : added parameterless ctor(). * ChannelDispatcher.cs DispatchRuntime.cs DispatchOperation.cs : Set some initial field values as proved in unit tests. Request/input processing is still ongoing. 2006-03-13 Atsushi Enomoto * ChannelDispatcher.cs DispatchRuntime.cs DispatchOperation.cs : added request/input processing code. 2006-03-07 Atsushi Enomoto * ChannelDispatcher.cs : Get "AcceptChannel" method without ambiguity. 2006-03-07 Atsushi Enomoto * ChannelDispatcher.cs : Added request-processing code. 2006-03-06 Atsushi Enomoto * ChannelDispatcher.cs : implement Attach() and Detach() more to work. 2006-02-23 Atsushi Enomoto * DispatchBehavior.cs : Dependent fixes for System.IdentityModel reorgainzation. 2006-02-23 Atsushi Enomoto * FilterNodeQuotaExceededException.cs FilterInvalidBodyAccessException.cs DispatchBehavior.cs DispatchOperation.cs NavigatorInvalidBodyAccessException.cs MatchNoneFilter.cs ActionFilter.cs MultipleFilterMatchesException.cs Filter.cs IInstanceContextInitializer.cs XPathFilter.cs IDispatchOperationSelector.cs MatchAllFilter.cs ActionFilterTable.cs EndpointAddressFilter.cs FilterTable.cs EndpointFilterTable.cs XPathMessageContext.cs IEndpointDispatcher.cs ProxyBehavior.cs ProxyOperation.cs XPathFilterTable.cs EndpointAddressFilterTable.cs InvalidBodyAccessException.cs IFilterTable.cs IOperationInvoker.cs : moved from System.ServiceModel due to the API changes.