ChangeLog 17 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503
  1. 2009-06-09 Atsushi Enomoto <[email protected]>
  2. * ChannelDispatcher.cs : avoid NRE (actually it should eliminate
  3. Thread.Abort()). Added some comments on throttling.
  4. 2009-06-09 Atsushi Enomoto <[email protected]>
  5. * ServiceThrottle.cs : implement.
  6. 2009-06-08 Atsushi Enomoto <[email protected]>
  7. * ChannelDispatcher.cs :
  8. Add call to base (see CommunicationObject change).
  9. 2009-06-01 Atsushi Enomoto <[email protected]>
  10. * ChannelDispatcher.cs : handle more errors gracefully.
  11. 2009-05-18 Atsushi Enomoto <[email protected]>
  12. * ErrorProcessingHandler.cs, InputOrReplyRequestProcessor.cs :
  13. they also premise request-reply channel and broke duplex channels.
  14. 2009-05-13 Atsushi Enomoto <[email protected]>
  15. * ChannelDispatcher.cs : open channel before using it.
  16. 2009-05-13 Atsushi Enomoto <[email protected]>
  17. * ReplyHandler.cs, InputOrReplyRequestProcessor.cs,
  18. MessageProcessingContext.cs : reply processing is also needed by
  19. non-request channels (i.e. duplex). Current code basis lacked
  20. such possibility. Quick fix by adding duplex support in
  21. ReplyHandler so far.
  22. 2009-05-13 Atsushi Enomoto <[email protected]>
  23. * ChannelDispatcher.cs, SecurityHandler.cs,
  24. InputOrReplyRequestProcessor.cs, MessageProcessingContext.cs :
  25. remove default communication timeouts from several types. They
  26. bring bogus NRE. Instead, fill timeouts in ChannelDispatcher and
  27. use it when required (it was actually *only* request processor).
  28. 2009-05-13 Atsushi Enomoto <[email protected]>
  29. * ChannelDispatcher.cs : wrong channel argument.
  30. 2009-04-27 Atsushi Enomoto <[email protected]>
  31. * DispatchRuntime.cs : some comment.
  32. * ChannelDispatcher.cs : ongoing changes to handle listeners and
  33. accepted channels at more precise state. Listeners are opened,
  34. without accepting channels. Some setup code is done at OnOpen(),
  35. while some are done at OnOpened().
  36. 2009-04-23 Atsushi Enomoto <[email protected]>
  37. * DispatchOperation.cs : implement GetFormatter() at service side too.
  38. 2009-04-01 Atsushi Enomoto <[email protected]>
  39. * OperationInvokeHandler.cs : replace MS copycat exception message.
  40. 2009-02-26 Atsushi Enomoto <[email protected]>
  41. * ClientRuntime.cs : fill contractType in .ctor().
  42. 2009-02-04 Atsushi Enomoto <[email protected]>
  43. * BaseMessagesFormatter.cs : do not use non-2.1 CreateInstance().
  44. 2008-06-18 Noam Lampert <[email protected]>
  45. * ChannelDispatcher.cs: Avoid aborting host process on faulty input message.
  46. 2008-05-22 Noam Lampert <[email protected]>
  47. * OperationInvokeHandler.cs: Only return fault reply when TargetInvocation occured (not other internal
  48. errors. Serlialize the correct (inner) exception.
  49. 2008-05-22 Roei Erez <[email protected]>
  50. * fix ContractDescription.GetContract implementation
  51. * Refactor Request processing
  52. * Add support for message inspectors
  53. * Add support for InstanceContextProvider & InstanceProvider, including lifecycles events
  54. like: ReleaseServiceInstance, Open, Close...
  55. * Add relevant test cases.
  56. 2008-05-01 Eyal Alaluf <[email protected]>
  57. * BaseMessagesFormatter.cs: Handle methods with out parameters that return
  58. void.
  59. * DispatchOperation.cs, IOperationInvoker.cs: Simplify method invocation.
  60. 2008-04-22 Igor Zelmanovich <[email protected]>
  61. * DispatchOperation.cs: removed dependency on OperationDescription,
  62. allows usage of custom channel dispatcher without endpoint was explicitly
  63. built
  64. 2008-04-22 Igor Zelmanovich <[email protected]>
  65. * MexInstanceContextProvider.cs - remove unused code.
  66. 2008-04-21 Roei Erez <[email protected]>
  67. * ChannelDispatcher.cs - Change order of Dispatcher shutdown
  68. 2008-04-17 Vladimir Krasnov <[email protected]>
  69. * ChannelDispatcher.cs, EndpointDispatcher.cs: removed dependency on
  70. ServiceDescription/ServiceEndpoint, allows usage of channel dispatcher
  71. without endpoint was explicitly built
  72. * EndpointDispatcher.cs: Filters lazy evaluation, refactored
  73. communication processing, logic moved to channel dispatcher
  74. 2008-04-17 Vladimir Krasnov <[email protected]>
  75. * ActionMessageFilter.cs: fixed Match, match for "*" action
  76. 2008-04-17 Vladimir Krasnov <[email protected]>
  77. * DispatchOperation.cs: fixed ProcessRequest, fault message creation
  78. 2008-04-10 Eyal Alaluf <[email protected]>
  79. * DefaultMessageOperationFormatter.cs: Moved to BaseMessagesFormatter.cs.
  80. * BaseMessagesFormatter.cs: Refactored so typed messages uses the classes
  81. defined here instead of the other way around.
  82. Added support for by-ref and out parameters.
  83. Added support for XmlSerializerFormat serializaters..
  84. * DispatchOperation.cs, ClientOperation.cs: Use BaseMessagesFormatter.Create
  85. 2008-04-09 Roei Erez <[email protected]>
  86. * Remove unused nethod from previous commit
  87. 2008-04-08 Roei Erez <[email protected]>
  88. * ChannelDispatcher.cs
  89. - fix 'Attach' logic
  90. - Add support for Endpoints property
  91. - Remove the hack of 'endpoint_dispatcher' field
  92. * ChannelDispatcherCollection.cs
  93. - Add support for 'Attach' 'Detach'
  94. * EndpointDispatcher.cs
  95. - By default create MatchAllMessageFilter.
  96. 2008-02-17 Atsushi Enomoto <[email protected]>
  97. * EndpointDispatcher.cs : we don't need AddressFilter workaround
  98. from Feb. 14 anymore.
  99. 2008-02-17 Atsushi Enomoto <[email protected]>
  100. * EndpointDispatcher.cs : after service method call, apply outgoing
  101. headers and properties to the returned message.
  102. 2008-02-15 Atsushi Enomoto <[email protected]>
  103. * ChannelDispatcher.cs : populate DispatchOperations before applying
  104. IEndpointBehaviors so that those behaviors can modify dispatch
  105. operations.
  106. 2008-02-15 Atsushi Enomoto <[email protected]>
  107. * DispatchOperation.cs : Action may be null. For such cases, use
  108. MessageDirection to determine the message description.
  109. 2008-02-15 Atsushi Enomoto <[email protected]>
  110. * EndpointAddressMessageFilter.cs : implement Match(MessageBuffer).
  111. Use ordinal string comparison.
  112. * PrefixEndpointAddressMessageFilter.cs : implement Match() (both).
  113. 2008-02-14 Atsushi Enomoto <[email protected]>
  114. * EndpointDispatcher.cs : moved AddressFilter application only when
  115. DispatchOperation was not selected (it is sort of workaround).
  116. 2007-08-19 Atsushi Enomoto <[email protected]>
  117. * DefaultMessageOperationFormatter.cs : Fixed SerializeReply() for
  118. message contract type to process result, not the parameter.
  119. 2007-08-19 Atsushi Enomoto <[email protected]>
  120. * SingletonInstanceContextProvider.cs : new.
  121. 2007-08-17 Atsushi Enomoto <[email protected]>
  122. * DefaultMessageOperationFormatter.cs : dependent changes on
  123. message serializer and deserializer.
  124. 2007-03-24 Atsushi Enomoto <[email protected]>
  125. * DefaultMessageOperationFormatter.cs :
  126. use it for deserialization as well.
  127. 2007-03-24 Atsushi Enomoto <[email protected]>
  128. * DefaultMessageOperationFormatter.cs : consider message contracts
  129. during message serialization/deserialization.
  130. 2007-03-07 Atsushi Enomoto <[email protected]>
  131. * EndpointDispatcher.cs : now dispatcher-side foundation for token
  132. negotiation is ready. Handle negotiation message on its own way.
  133. * DispatchOperation.cs : instead of returning irrelevant SOAP Fault,
  134. simply raise an error and let FaultConverter do better work.
  135. 2007-03-07 Atsushi Enomoto <[email protected]>
  136. * EndpointDispatcher.cs : use ErrorHandlers when error was raised.
  137. Handle exceptions to make into SOAP Fault, using FaultConverter.
  138. * ChannelDispatcher.cs : simply get ServiceEndpoint at Attach().
  139. * ChannelDispatcherBase.cs : removed MonoTODOs.
  140. 2007-03-07 Atsushi Enomoto <[email protected]>
  141. * ChannelDispatcher.cs, DispatchRuntime.cs, EndpointDispatcher.cs :
  142. moved most of request/input processing to EndpointDispatcher.cs.
  143. Also, ChannelDispatcher now contains code for behavior
  144. initialization.
  145. 2007-03-07 Atsushi Enomoto <[email protected]>
  146. * ChannelDispatcher.cs : some cosmetic refactoring on error handling
  147. with comments.
  148. 2006-12-14 Atsushi Enomoto <[email protected]>
  149. * ChannelDispatcher.cs, DispatchRuntime.cs, DispatchOperation.cs :
  150. Support OperationContext and OperationContextScope with
  151. ServiceRuntimeChannel as its .ctor() input.
  152. 2006-12-14 Atsushi Enomoto <[email protected]>
  153. * DispatchRuntime.cs : raise an error when the DispatchOperation
  154. returned null Message.
  155. 2006-10-18 Ankit Jain <[email protected]>
  156. * MexInstanceContextProvider.cs (HttpGetInstanceContextProvider): New.
  157. * DispatchOperation.cs (DoProcessRequest): InstanceContext returned by
  158. the provider can be null.
  159. * EndpointAddressMessageFilter.cs (Match): Handle IncludeHostNameInComparison.
  160. 2006-10-12 Atsushi Enomoto <[email protected]>
  161. * DispatchOperation.cs : slightly improved exception message.
  162. 2006-10-06 Ankit Jain <[email protected]>
  163. * ChannelDispatcher.cs (ListenerLoopManager.StartLoopCore):
  164. ReceiveRequest can return null.
  165. 2006-10-05 Atsushi Enomoto <[email protected]>
  166. * ClientRuntime.cs : added MaxFaultSize.
  167. 2006-10-05 Atsushi Enomoto <[email protected]>
  168. * ChannelDispatcher.cs : don't reject anonymous and null To.
  169. 2006-10-04 Ankit Jain <[email protected]>
  170. * ChannelDispatcher.cs (ListenerLoopManager.StartLoopCore): Reply with a
  171. Fault message if message's To doesn't match the endpoint.
  172. (ListenerLoopManager.CreateDestinationUnreachable): New.
  173. * IInstanceContextProvider.cs: New.
  174. * MexInstanceContextProvider.cs: New. InstanceContextProvider for
  175. MetadataExchange.
  176. (MetadataExchange): Implementation of IMetadataExchange.
  177. * DispatchRuntime.cs (InstanceContextProvider): Add missing property.
  178. * DispatchOperation.cs (DoProcessRequest): Use InstanceContextProvider
  179. if available to obtain service instance.
  180. * EndpointDispatcher.cs (.ctor): Set AddressFilter to EndpointAddressMessageFilter.
  181. * EndpointAddressMessageFilter.cs (Match): Implement.
  182. 2006-10-03 Atsushi Enomoto <[email protected]>
  183. * ClientRuntime.cs : added InteractiveChannelInitializer.
  184. 2006-09-12 Atsushi Enomoto <[email protected]>
  185. * DispatchOperation.cs : removed extra comment.
  186. 2006-09-08 Atsushi Enomoto <[email protected]>
  187. * DispatchOperation.cs : workaround to send exception detail.
  188. 2006-09-06 Atsushi Enomoto <[email protected]>
  189. * ICallContextInitializer.cs : new file.
  190. * DispatchOperation.cs : use above.
  191. Not sure if it works correctly though.
  192. 2006-08-28 Atsushi Enomoto <[email protected]>
  193. * DispatchOperation.cs : when there is an error during
  194. ProcessRequest(), wrap the exception with MessageFault and return
  195. a fault message.
  196. 2006-08-10 Duncan Mak <[email protected]>
  197. * ExceptionHandler.cs: New file.
  198. * ServiceThrottle.cs (MaxConnections): Renamed to
  199. MaxConcurrentSessions.
  200. (MaxInstances): Renamed to MaxConcurrentInstances.
  201. 2006-07-27 Atsushi Enomoto <[email protected]>
  202. * IInteractiveChannelInitializer.cs : new file.
  203. 2006-07-14 Atsushi Enomoto <[email protected]>
  204. * IErrorHandler.cs : API updates.
  205. 2006-07-13 Atsushi Enomoto <[email protected]>
  206. * DispatchRuntime.cs :
  207. it was selecting UnhandledOperation unexpectedly.
  208. * DispatchOperation.cs : added FIXME comment.
  209. 2006-07-13 Atsushi Enomoto <[email protected]>
  210. * DefaultMessageOperationFormatter.cs : Remove hack for non-
  211. (de)serializing Message-based methods. They are now moved to
  212. ClientBase and ServiceHostBase to explicitly set
  213. [Serialize|Deserialize][Request|Reply].
  214. 2006-07-12 Atsushi Enomoto <[email protected]>
  215. * DefaultMessageOperationFormatter.cs : don't omit action on
  216. SerializeRequest. Do it in SerializeReply.
  217. 2006-07-12 Atsushi Enomoto <[email protected]>
  218. * DefaultMessageOperationFormatter.cs : When addressing version is
  219. None, then omit reply action. This logic is moved from MessageImpl.
  220. 2006-07-11 Atsushi Enomoto <[email protected]>
  221. * DefaultMessageOperationFormatter.cs :
  222. return message, not parameter[0]. Removed some extra FIXMEs.
  223. 2006-07-10 Atsushi Enomoto <[email protected]>
  224. * DefaultMessageOperationFormatter.cs : when the parameter is
  225. Message and the return type is Message, then do not use
  226. XmlObjectSerializer.
  227. 2006-07-07 Atsushi Enomoto <[email protected]>
  228. * PrefixEndpointAddressMessageFilter.cs, FaultContractInfo.cs :
  229. new types in June CTP.
  230. * ISharedInstanceSessionLifetime.cs:
  231. removed in June CTP.
  232. * ChannelDispatcher.cs, MatchAllMessageFilter.cs, DispatchRuntime.cs,
  233. DispatchOperation.cs, ClientRuntime.cs, MatchNoneMessageFilter.cs,
  234. ClientOperation.cs, ActionMessageFilterTable.cs,
  235. EndpointAddressMessageFilterTable.cs :
  236. several minor fixes for June CTP.
  237. 2006-07-06 Atsushi Enomoto <[email protected]>
  238. * DispatchOperation.cs : MessageFault.DefaultAction vanished.
  239. 2006-07-05 Atsushi Enomoto <[email protected]>
  240. * IClientFormatter.cs, IClientMessageFormatter.cs,
  241. IDispatchFormatter.cs, IDispatchMessageFormatter.cs :
  242. renamed former to latter, for each.
  243. 2006-07-05 Atsushi Enomoto <[email protected]>
  244. * ChannelDispatcher.cs, DispatchRuntime.cs :
  245. IRequestContext -> RequestContext.
  246. 2006-07-05 Atsushi Enomoto <[email protected]>
  247. * ChannelDispatcher.cs, IDispatchFormatter.cs,
  248. DefaultMessageOperationFormatter.cs, IClientFormatter.cs,
  249. DispatchOperation.cs, ClientOperation.cs :
  250. some June CTP updates.
  251. 2006-06-22 Atsushi Enomoto <[email protected]>
  252. * DefaultMessageOperationFormatter.cs : implement SerializeRequest()
  253. and DeserializeReply(). Now simple ClientBase<T> sample is working.
  254. 2006-06-22 Atsushi Enomoto <[email protected]>
  255. * ClientOperation.cs : added GetFormatter() to support message
  256. serialization/deserialization.
  257. * DispatchOperation.cs : made some internal members private
  258. (they are exposed extraneously). Commented out debugging code.
  259. 2006-06-20 Atsushi Enomoto <[email protected]>
  260. * DefaultMessageOperationFormatter.cs : In SerializeReply(), use
  261. custom BodyWriter() and use MessagePartDescription names. Now
  262. return value and other (ref/out) parameters could be equivalently
  263. serialized (at this method; to support them more love is needed).
  264. 2006-06-20 Atsushi Enomoto <[email protected]>
  265. * DefaultMessageOperationFormatter.cs :
  266. Action for response is null (though it is likely conditional).
  267. 2006-06-20 Atsushi Enomoto <[email protected]>
  268. * DefaultMessageOperationFormatter.cs :
  269. true DeserializeReply implementation using Message.CreateMessage()
  270. with DataContractSerializer (not complete though).
  271. 2006-05-29 Atsushi Enomoto <[email protected]>
  272. * ChannelDispatcher.cs, DispatchOperation.cs,
  273. ChannelDispatcherBase.cs :
  274. some updated API fixes.
  275. 2006-05-29 Atsushi Enomoto <[email protected]>
  276. * EndpointDispatcher.cs : moved from Sys.ServiceModel.
  277. 2006-04-20 Atsushi Enomoto <[email protected]>
  278. * ClientRuntime.cs : some minor collection instantiation and comments.
  279. 2006-04-07 Atsushi Enomoto <[email protected]>
  280. * DispatchOperation.cs : Implemented internal MessageVersion.
  281. hacked instance provision by using Activator.CreateInstance.
  282. * DefaultMessageOperationFormatter.cs : fixed DeserializeRequest to
  283. be functional. Implemented SerializeReply.
  284. 2006-04-05 Atsushi Enomoto <[email protected]>
  285. * DispatchOperation.cs : return SOAP fault message for nonexistent
  286. request Action.
  287. * DefaultMessageOperationFormatter.cs : implemented
  288. DeserializeRequest(), though there is no working example.
  289. 2006-03-17 Atsushi Enomoto <[email protected]>
  290. * DispatchOperation.cs : implemented logic to acquire
  291. OperationDescription. Added code for default IDispatchFormatter
  292. implementation.
  293. * DispatchRuntime.cs : fix warning.
  294. * DefaultMessageOperationFormatter.cs : new file, for default
  295. IDispatchFormatter implementation (not done yet).
  296. * ChannelDispatcher.cs : create EndpointDispatcher in Attach and
  297. bind to this instance.
  298. 2006-03-16 Atsushi Enomoto <[email protected]>
  299. * ChannelDispatcherCollection.cs : added parameterless ctor().
  300. * ChannelDispatcher.cs DispatchRuntime.cs DispatchOperation.cs :
  301. Set some initial field values as proved in unit tests.
  302. Request/input processing is still ongoing.
  303. 2006-03-13 Atsushi Enomoto <[email protected]>
  304. * ChannelDispatcher.cs
  305. DispatchRuntime.cs
  306. DispatchOperation.cs : added request/input processing code.
  307. 2006-03-07 Atsushi Enomoto <[email protected]>
  308. * ChannelDispatcher.cs : Get "AcceptChannel" method without ambiguity.
  309. 2006-03-07 Atsushi Enomoto <[email protected]>
  310. * ChannelDispatcher.cs : Added request-processing code.
  311. 2006-03-06 Atsushi Enomoto <[email protected]>
  312. * ChannelDispatcher.cs : implement Attach() and Detach() more to work.
  313. 2006-02-23 Atsushi Enomoto <[email protected]>
  314. * DispatchBehavior.cs :
  315. Dependent fixes for System.IdentityModel reorgainzation.
  316. 2006-02-23 Atsushi Enomoto <[email protected]>
  317. * FilterNodeQuotaExceededException.cs
  318. FilterInvalidBodyAccessException.cs DispatchBehavior.cs
  319. DispatchOperation.cs NavigatorInvalidBodyAccessException.cs
  320. MatchNoneFilter.cs ActionFilter.cs
  321. MultipleFilterMatchesException.cs Filter.cs
  322. IInstanceContextInitializer.cs XPathFilter.cs
  323. IDispatchOperationSelector.cs MatchAllFilter.cs
  324. ActionFilterTable.cs EndpointAddressFilter.cs FilterTable.cs
  325. EndpointFilterTable.cs XPathMessageContext.cs
  326. IEndpointDispatcher.cs ProxyBehavior.cs
  327. ProxyOperation.cs XPathFilterTable.cs
  328. EndpointAddressFilterTable.cs InvalidBodyAccessException.cs
  329. IFilterTable.cs IOperationInvoker.cs :
  330. moved from System.ServiceModel due to the API changes.