Hi, Mono 1.1.13 is the maintenance release that means that only fixes for critical bugs are backported.
I suggest you to use the stable Mono 1.1.18 with mod_mono 1.1.18 because that contains a lot of features missing from Mono 1.1.13 and contains a lot of non-critical bug fixes. Kornél ----- Original Message ----- From: "Ben Clewett" <[EMAIL PROTECTED]> To: "Kornél Pál" <[EMAIL PROTECTED]> Cc: <[email protected]> Sent: Wednesday, November 08, 2006 4:32 PM Subject: Re: [Mono-list] Webservise Discovery Language > Kornél, > > Thanks for the info. I am using the default from SUSE 10.1: > mono 1.1.13.8 > mod_mono 1.1.15.5 > There is no version number against this bug-fix so I don't know whether my > version should work or not. > > Thanks for the extended code, I'll try to implement it. > > In my case our applications do not use the GET method. So this has > provided me a very simple method of toggling the exposure to documentation > and discovery. > > I have learnt a lot about mod_mono in the last two days :) > > Regards, > > Ben > > >> Hi, >> >> Web.config should be watched as well by recent stable releases. >> See bug #78505: http://bugzilla.ximian.com/show_bug.cgi?id=78505 >> I suggest you to use the stable releases instead of maintenance releases. >> >> Using Application events is just as good as creating a wrapper around an >> other handler. >> >> Also note that System.Web.Secrives uses a more complex code to determine >> whether the request is a "Documentation" request. For the exact details >> have a look at GuessProtocol in >> mcs/class/System.Web.Services/System.Web.Services.Protocols/WebServiceHandlerFactory.cs >> >> I think that disallowing GET methods without path info is safer. But in >> this case you have to check whether it is a web service request. And I >> prefer handler wrappers because that makes easier to catch all web >> service requests. >> >> I attached a sample implementation as well. >> >> Kornél >> >> ----- Original Message ----- From: "Ben Clewett" <[EMAIL PROTECTED]> >> To: "Kornél Pál" <[EMAIL PROTECTED]> >> Cc: <[email protected]> >> Sent: Wednesday, November 08, 2006 12:46 PM >> Subject: Re: [Mono-list] Webservise Discovery Language >> >> >>> Kornél, >>> >>> I am making progress. You code seems to work well, I've just got to >>> tidy it a bit. >>> >>> You asked me to report a bug if a change in the Web.config is not >>> respected by mod_mono without a restart. I think I have a candidate for >>> a bug: >>> >>> I have added this to Web.config: >>> >>> <system.web> >>> <webServices> >>> <protocols> >>> <remove name="Documentation"/> >>> </protocols> >>> </webServices> >>> .... >>> .... >>> .... >>> <system.web> >>> >>> >>> This is not respected without a restart. But otherwise works well. >>> >>> -----------<>------------ >>> >>> Secondly. >>> >>> For use of other members, I have found this great code snipit for >>> Global.asax: >>> >>> protected void Application_BeginRequest(Object sender, EventArgs e) >>> { >>> string requestPath = Request.RawUrl.Trim().ToLower(); >>> >>> if (!my_static_global_flag) { >>> if (requestPath.IndexOf("?wsdl") > 0 || >>> requestPath.IndexOf("?disco") > 0) >>> throw new HttpException(404, "Access Denied."); >>> } >>> } >>> >>> This also helps give me good control over visibility of my webservices. >>> >>> -----------<>------------ >>> >>> Thanks for the help, >>> >>> Ben >>> >>> >>> >>> >>> Kornél Pál wrote: >>>> Hi, >>>> >>>> I attached a reference implementation in >>>> OptionalDiscoveryRequestHandler.cs. >>>> >>>> You can control it using the internal >>>> OptionalDiscoveryRequestHandler.EnableDiscovery field. >>>> >>>> The only thing you have to do is to compile the handler to a DLL (don't >>>> require it's own assembly, you can put into any existing assembly) and >>>> reference this type in Web.config instead of >>>> System.Web.Services.Discovery.DiscoveryRequestHandler. >>>> >>>> Kornél >>>> >>>> ----- Original Message ----- From: "Ben Clewett" >>>> <[EMAIL PROTECTED]> >>>> To: "Kornél Pál" <[EMAIL PROTECTED]> >>>> Cc: <[email protected]> >>>> Sent: Tuesday, November 07, 2006 7:05 PM >>>> Subject: Re: [Mono-list] Webservise Discovery Language >>>> >>>> >>>>> Kornél, >>>>> >>>>> I am very exited about your suggestion, I think this is exactly what >>>>> I'm looking for. >>>>> >>>>> But this level of experience is way about my knowledge. If you could >>>>> share this, I would be interested. >>>>> >>>>> Many thanks, >>>>> >>>>> Ben >>>>> >>>>> >>>>> Kornél Pál wrote: >>>>>> ASP.NET applications should reload automatically on Web.config change >>>>>> so there should be no need for restarting mod-mono-server (if you >>>>>> mean that on mono). If you have a problem like that please file a bug >>>>>> report. >>>>>> >>>>>> If you mean the Web.config modification described on >>>>>> http://msdn2.microsoft.com/en-us/library/tewz1055.aspx in "To enable >>>>>> dynamic discovery for a Web service" I suggest you to create your own >>>>>> IHttpHandler implementation that wraps >>>>>> System.Web.Services.Discovery.DiscoveryRequestHandler and that will >>>>>> make you able to disable it based on static fields or your own >>>>>> configuration files. If you use this method I can send you a simple >>>>>> implementation of this. >>>>>> >>>>>> You are using some other Web.config settings please let me know what >>>>>> exactly do you use. >>>>>> >>>>>> Kornél >>>>>> >>>>>> ----- Original Message ----- From: "Ben Clewett" <[EMAIL PROTECTED]> >>>>>> To: "Kornél Pál" <[EMAIL PROTECTED]> >>>>>> Cc: <[email protected]> >>>>>> Sent: Tuesday, November 07, 2006 6:41 PM >>>>>> Subject: Re: [Mono-list] Webservise Discovery Language >>>>>> >>>>>> >>>>>>> Kornél Pál wrote: >>>>>>>> Web.config is intended to do configuration. What exactly is your >>>>>>>> problem with that? >>>>>>> >>>>>>> Hi Kornél, >>>>>>> >>>>>>> Thanks for the reply. >>>>>>> >>>>>>> I have six servers to manage. We sometimes release ten version of >>>>>>> code a day, which over-write the Web.config. Editing this file is >>>>>>> potentially dangerous. After an edit, I have to re-start the mono. >>>>>>> >>>>>>> My feeling is that this file must be interoperated by some part of >>>>>>> the Mono suit (stop me if this is wrong.) It would be much better >>>>>>> for me if control could be administered by some simple flag. Or >>>>>>> even a static public variable in mono. >>>>>>> >>>>>>> If this is not possible, it's not so important. I am just >>>>>>> interested to know if there is an alternate method. >>>>>>> >>>>>>> I can't be the only member who would like better control of this. >>>>>>> Alternatively, do any members have scripts to toggle the Webservice >>>>>>> Discovery which are safe and fast? >>>>>>> >>>>>>> Thanks again, >>>>>>> >>>>>>> Ben >>>>>>> >>>>>>> >>>>>>> >>>>>>> >>>>>>>> >>>>>>>> Kornél >>>>>>>> >>>>>>>> ----- Original Message ----- From: "Ben Clewett" >>>>>>>> <[EMAIL PROTECTED]> >>>>>>>> To: <[email protected]> >>>>>>>> Sent: Tuesday, November 07, 2006 5:38 PM >>>>>>>> Subject: [Mono-list] Webservise Discovery Language >>>>>>>> >>>>>>>> >>>>>>>>> Sorry if this has been asked many times before.... >>>>>>>>> >>>>>>>>> We develop ASP-Webservice code, which runs better than perfect on >>>>>>>>> Mono. >>>>>>>>> >>>>>>>>> On our development system, we want the Webservice Discovery turned >>>>>>>>> on. >>>>>>>>> >>>>>>>>> On our live systems, we want it optionally turned on. >>>>>>>>> >>>>>>>>> The only way I know of doing this is to edit the Web.config file. >>>>>>>>> >>>>>>>>> But this is messy, if done badly can crash the webservice, it has >>>>>>>>> to be >>>>>>>>> done on every release and every time we want to toggle this >>>>>>>>> option. >>>>>>>>> >>>>>>>>> Do any of your members know a simple and elegant method for >>>>>>>>> toggling the >>>>>>>>> Webservice Discovery visibility? >>>>>>>>> >>>>>>>>> Thanks for your help, >>>>>>>>> >>>>>>>>> Ben. >>>>>>>>> >>>>>>>>> _______________________________________________ >>>>>>>>> Mono-list maillist - [email protected] >>>>>>>>> http://lists.ximian.com/mailman/listinfo/mono-list >>>>>>>> >>>>>>> >>>>>> >>>>> >>>> using System.Web; >>>> using System.Web.Services.Discovery; >>>> >>>> namespace MyNamespace >>>> { >>>> public class OptionalDiscoveryRequestHandler : IHttpHandler >>>> { >>>> internal static bool EnableDiscovery; >>>> >>>> public OptionalDiscoveryRequestHandler() >>>> { >>>> } >>>> >>>> public void ProcessRequest(HttpContext context) >>>> { >>>> if (!EnableDiscovery) >>>> throw new HttpException(403, "Forbidden"); >>>> >>>> new DiscoveryRequestHandler().ProcessRequest(context); >>>> } >>>> >>>> public bool IsReusable >>>> { >>>> get >>>> { >>>> return true; >>>> } >>>> } >>>> } >>>> } >>>> >>>> >>>> ------------------------------------------------------------------------ >>>> >>>> _______________________________________________ >>>> Mono-list maillist - [email protected] >>>> http://lists.ximian.com/mailman/listinfo/mono-list >>> >> using System.Web; >> using System.Web.Services.Protocols; >> >> namespace MyNamespace >> { >> public class OptionalDocumentationRequestHandlerFactory : >> IHttpHandlerFactory >> { >> private class DocumentationForbiddenHandler : IHttpHandler >> { >> public DocumentationForbiddenHandler() >> { >> } >> >> public void ProcessRequest(HttpContext context) >> { >> throw new HttpException(403, "Forbidden"); >> } >> >> public bool IsReusable >> { >> get >> { >> return true; >> } >> } >> } >> >> internal static bool EnableDocumentation; >> >> private WebServiceHandlerFactory webServiceHandlerFactory; >> >> public OptionalDocumentationRequestHandlerFactory() >> { >> webServiceHandlerFactory = new WebServiceHandlerFactory(); >> } >> >> public IHttpHandler GetHandler(HttpContext context, string verb, >> string url, string filePath) >> { >> string pathInfo = context.Request.PathInfo; >> >> if (!EnableDocumentation && verb == "GET" && (pathInfo == >> null || pathInfo.Length == 0)) >> return new DocumentationForbiddenHandler(); >> >> return webServiceHandlerFactory.GetHandler(context, verb, >> url, filePath); >> } >> >> public void ReleaseHandler(IHttpHandler handler) >> { >> if (!(handler is DocumentationForbiddenHandler)) >> webServiceHandlerFactory.ReleaseHandler(handler); >> } >> } >> } > _______________________________________________ Mono-list maillist - [email protected] http://lists.ximian.com/mailman/listinfo/mono-list
