return p2 - p1;
}
- const UriComponents cmpflag = UriComponents.HttpRequestUrl ^ UriComponents.Query;
+ const UriComponents cmpflag = UriComponents.Path;
const UriFormat fmtflag = UriFormat.SafeUnescaped;
internal bool FilterHttpContext (HttpContextInfo ctx)
{
if (ChannelDispatcher == null)
return true; // no mex can be involved.
- if (ctx.HttpMethod.ToUpper () != "GET")
+ if (ctx.Request.HttpMethod.ToUpper () != "GET")
return !ChannelDispatcher.IsMex; // non-GET request never matches mex channel dispatcher.
var sme = ChannelDispatcher.Host.Extensions.Find<ServiceMetadataExtension> ();
if (sme == null)
// | T | F | F | T |
bool match =
- (mex.WsdlUrl != null && Uri.Compare (ctx.RequestUrl, mex.WsdlUrl, cmpflag, fmtflag, StringComparison.Ordinal) == 0) ||
- (mex.HelpUrl != null && Uri.Compare (ctx.RequestUrl, mex.HelpUrl, cmpflag, fmtflag, StringComparison.Ordinal) == 0);
+ (mex.WsdlUrl != null && Uri.Compare (ctx.Request.Url, mex.WsdlUrl, cmpflag, fmtflag, StringComparison.Ordinal) == 0) ||
+ (mex.HelpUrl != null && Uri.Compare (ctx.Request.Url, mex.HelpUrl, cmpflag, fmtflag, StringComparison.Ordinal) == 0);
return !(match ^ ChannelDispatcher.IsMex);
}