Please, commit.
Thanks!

Lluis.

El dj 30 de 06 del 2005 a les 15:35 +0300, en/na Konstantin Triger va
escriure:
> Hello,
> 
> The WebService instance is not disposed after a WebMethod invocation. In 
> .Net it's called immediately.
> Attached a patch fixing that. Please approve commit.
> 
> fitxer adjunt Document de text pla (WebService.dispose.diff)
> Index: System.Web.Services.Protocols/HttpSoapWebServiceHandler.cs
> ===================================================================
> --- System.Web.Services.Protocols/HttpSoapWebServiceHandler.cs        
> (revision 46760)
> +++ System.Web.Services.Protocols/HttpSoapWebServiceHandler.cs        
> (working copy)
> @@ -48,7 +48,6 @@
>               SoapExtension[] _extensionChainLowPrio;
>               SoapMethodStubInfo methodInfo;
>               SoapServerMessage requestMessage = null;
> -             object server;
>  
>               public HttpSoapWebServiceHandler (Type type): base (type)
>               {
> @@ -105,6 +104,12 @@
>                                       SerializeFault (context, 
> requestMessage, ex);
>                               }
>                       }
> +                     finally {
> +                             IDisposable disp = requestMessage.Server as 
> IDisposable;
> +                             requestMessage = null;
> +                             if (disp != null)
> +                                     disp.Dispose();
> +                     }
>               }
>  
>               SoapServerMessage DeserializeRequest (HttpRequest request)
> @@ -119,7 +124,7 @@
>                               if (ctype != "text/xml")
>                                       throw new WebException ("Content is not 
> XML: " + ctype);
>                                       
> -                             server = CreateServerInstance ();
> +                             object server = CreateServerInstance ();
>  
>                               SoapServerMessage message = new 
> SoapServerMessage (request, server, stream);
>                               message.SetStage 
> (SoapMessageStage.BeforeDeserialize);
> Index: System.Web.Services.Protocols/HttpSimpleWebServiceHandler.cs
> ===================================================================
> --- System.Web.Services.Protocols/HttpSimpleWebServiceHandler.cs      
> (revision 46760)
> +++ System.Web.Services.Protocols/HttpSimpleWebServiceHandler.cs      
> (working copy)
> @@ -115,9 +115,16 @@
>                       try
>                       {
>                               object server = CreateServerInstance ();
> -                             object[] res = method.Invoke (server, 
> parameters);
> -                             if (!method.IsVoid) return res[0];
> -                             else return null;
> +                             try {
> +                                     object[] res = method.Invoke (server, 
> parameters);
> +                                     if (!method.IsVoid) return res[0];
> +                                     else return null;
> +                             }
> +                             finally {
> +                                     IDisposable disp = server as 
> IDisposable;
> +                                     if (disp != null)
> +                                             disp.Dispose();
> +                             }
>                       }
>                       catch (TargetInvocationException ex)
>                       {
> _______________________________________________
> Mono-devel-list mailing list
> Mono-devel-list@lists.ximian.com
> http://lists.ximian.com/mailman/listinfo/mono-devel-list

_______________________________________________
Mono-devel-list mailing list
Mono-devel-list@lists.ximian.com
http://lists.ximian.com/mailman/listinfo/mono-devel-list

Reply via email to