2006-12-18 Atsushi Enomoto <atsushi@ximian.com>
authorAtsushi Eno <atsushieno@gmail.com>
Mon, 18 Dec 2006 09:34:37 +0000 (09:34 -0000)
committerAtsushi Eno <atsushieno@gmail.com>
Mon, 18 Dec 2006 09:34:37 +0000 (09:34 -0000)
* WebServiceHandlerFactory.cs,
  SoapServerMessage.cs,
  HttpSoapWebServiceHandler.cs :
  set guessed protocol to SoapServerMessage.

svn path=/branches/atsushi/mcs/; revision=69653

mcs/class/System.Web.Services/System.Web.Services.Protocols/ChangeLog
mcs/class/System.Web.Services/System.Web.Services.Protocols/HttpSoapWebServiceHandler.cs
mcs/class/System.Web.Services/System.Web.Services.Protocols/SoapServerMessage.cs
mcs/class/System.Web.Services/System.Web.Services.Protocols/WebServiceHandlerFactory.cs

index 36633323b49e58dee11650e3b2acdbd2f955e5f7..6bf30f45d7e8e62a9f5d8aebe05806876a1a97b6 100644 (file)
@@ -1,3 +1,10 @@
+2006-12-18  Atsushi Enomoto  <atsushi@ximian.com>
+
+       * WebServiceHandlerFactory.cs,
+         SoapServerMessage.cs,
+         HttpSoapWebServiceHandler.cs :
+         set guessed protocol to SoapServerMessage.
+
 2006-12-18  Atsushi Enomoto  <atsushi@ximian.com>
 
        * TypeStubManager.cs, Methods.cs, SoapServerMethod.cs :
index 0f9670f6e8dad4f0d1f04c395063d8cae80008f2..e113626c012eff5d6107cdc607b1d427d9274457 100644 (file)
@@ -80,8 +80,14 @@ namespace System.Web.Services.Protocols
 
                        try
                        {
-                               if (requestMessage == null)
+                               if (requestMessage == null) {
                                        requestMessage = DeserializeRequest (context.Request);
+#if NET_2_0
+                                       object soapVer = context.Items ["WebServiceSoapVersion"];
+                                       if (soapVer != null)
+                                               requestMessage.SetSoapVersion ((SoapProtocolVersion) soapVer);
+#endif
+                               }
                                
                                if (methodInfo != null && methodInfo.OneWay) {
                                        context.Response.BufferOutput = false;
@@ -354,6 +360,11 @@ namespace System.Web.Services.Protocols
                                faultMessage = new SoapServerMessage (context.Request, soex, requestMessage.MethodStubInfo, requestMessage.Server, requestMessage.Stream);
                        else
                                faultMessage = new SoapServerMessage (context.Request, soex, null, null, null);
+#if NET_2_0
+                       object soapVer = context.Items ["WebServiceSoapVersion"];
+                       if (soapVer != null)
+                               faultMessage.SetSoapVersion ((SoapProtocolVersion) soapVer);
+#endif
 
                        SerializeResponse (context.Response, faultMessage);
                        context.Response.End ();
index ded95e6793131dfe0cd8a2a923d97fd04dda050b..3b57a6436bbaf372c4310ea0327c8af28db07b48 100644 (file)
@@ -42,6 +42,9 @@ namespace System.Web.Services.Protocols {
                object server;
                string url;
                object[] parameters;
+#if NET_2_0
+               SoapProtocolVersion soapVersion;
+#endif
 
                #endregion
 
@@ -103,7 +106,7 @@ namespace System.Web.Services.Protocols {
                [MonoTODO]
                [System.Runtime.InteropServices.ComVisible(false)]
                public override SoapProtocolVersion SoapVersion {
-                       get { throw new NotImplementedException (); }
+                       get { return soapVersion; }
                }
 #endif
 
@@ -121,6 +124,13 @@ namespace System.Web.Services.Protocols {
                        EnsureStage (SoapMessageStage.BeforeSerialize);
                }
 
+#if NET_2_0
+               internal void SetSoapVersion (SoapProtocolVersion value)
+               {
+                       soapVersion = value;
+               }
+#endif
+
                #endregion // Methods
        }
 }
index fcd3bd531102adaed1a645ed7a91dd7545dec57f..36715ebb600e75bcf4f48bc6ed7bff0171f8be87 100644 (file)
@@ -101,6 +101,12 @@ namespace System.Web.Services.Protocols
                        Type type = WebServiceParser.GetCompiledType (filePath, context);
 
                        WSProtocol protocol = GuessProtocol (context, verb);
+#if NET_2_0
+                       context.Items ["WebServiceSoapVersion"] =
+                               protocol == WSProtocol.HttpSoap12 ?
+                               SoapProtocolVersion.Soap12 :
+                               SoapProtocolVersion.Default;
+#endif
                        bool supported = false;
                        IHttpHandler handler = null;