如何找到使用特定托管web/wcf服务的应用程序列表?

本文关键字:服务 wcf 应用程序 列表 web 何找 | 更新日期: 2023-09-27 18:06:08

我正在处理一项任务,我必须列出调用我们的web/wcf服务的应用程序的数量。

目前我正在查看应用程序文件夹结构,并寻找文件夹"Web References"来列出所有Web服务。

但是这种查找WCF服务的总列表的方法不起作用,因为WCF服务可以通过许多其他方式使用。

有万无一失的方法吗?

如何找到使用特定托管web/wcf服务的应用程序列表?

方法之一是在服务器上实现您自己的消息检查器,派生自IDispatchMessageInspector,并记录每个请求的IP地址(参见此处的示例)。

如果需要更详细的信息,例如,如果有多个客户端在一台机器上-你需要在你的合同中包括客户身份,然后在自定义报头中发送,或者实现身份验证。但是,当然,这并不能阻止多个客户端使用相同的标识。

您可以在客户端配置中添加自定义头。

<endpoint address="http://localhost:8080"  
       binding="basicHttpBinding"        
       contract="CalService.ICalService">
      <headers>
            <ClientIdentification>Cal1</ClientIdentification>
      </headers>
</endpoint>

并使用以下代码

检索
   var operationContext = OperationContext.Current;
   var requestContext = operationContext .RequestContext;
   var headers = requestContext.RequestMessage.Headers;
   int headerIndex = headers.FindHeader("ClientIdentification", "");
   var clientHeaderString = headers.GetHeader<string>(headerIndex);