我在IIS中托管WCF,在我的HttpApplication中我希望在Application_BeginRequest
方法中获取WCF操作合同名称(方法被调用):
protected void Application_BeginRequest(object sender, EventArgs e)
{
var request = Context.Request;
}
我从上下文中获取请求,但我无法理解如何找到被调用的WCF方法的名称。
答案 0 :(得分:0)
如果这是SOAP WCF服务,您可以检查项目中的服务引用并查看引用。如果它是SOAP WCF并且您尚未将其添加为服务引用,请右键单击该项目并转到添加服务引用。然后添加您要使用的url和命名空间。您还可以导航到WISDL以查看其中的方法。要做到这一点,您只需在浏览器中以这种格式提取网址http:// {WebServiceUrl} / {NameOfService} .svc?wsdl
如果这是REST WCF服务,则该服务可能会提供API参考。例如,该网址可能是这样的http:// {WebServiceUrl} / {NameOfService} / API / help
答案 1 :(得分:0)
查看传入的HTTP标头:
Console.WriteLine(HttpContext.Current.Request.Headers["SOAPAction"]);
这将在我的样本中吐出全部值:
值得注意的是,OperationContext.Current.IncomingMessageHeaders.Action
无法在Application_BeginRequest
中使用,因为操作尚未开始,因此OperationContext.Current
为空。