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

时间:2014-06-02 08:50:35

标签: c# web-services wcf

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

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

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

这样做是否有一种万无一失的方法?

2 个答案:

答案 0 :(得分:1)

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

如果您需要更详细的信息,例如,如果有多个客户端 在一台机器上 - 您需要在客户身份中包含客户身份证明, 并在自定义标头中发送它,或实现身份验证。 但当然,这并不妨碍多个客户端使用相同的身份。

答案 1 :(得分:0)

您可以向客户端配置添加自定义标头。

<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);

另见this