簡體   English   中英

檢查是否調用了 WCF 服務

[英]Checking if a WCF service is called

我使用在 Windows Server 2016 上運行的 C# 構建了一個 WCF 服務。

我需要知道何時從客戶端調用此 WCF,以及調用它的人(例如 IP)

有沒有辦法做到這一點? 我曾嘗試檢查事件查看器和 IIS,但不知道如何進行。 謝謝,

您確實應該使用某種日志記錄框架(Log4Net、NLog、MS 企業庫記錄器...),

這將允許您登錄文本文件、電子郵件、事件日志或數據庫,然后您將能夠首先記錄從您的代碼中拋出的任何錯誤/異常,以便您可以調查和解決錯誤,此外您還可以包括信息/詳細級別的日志條目,以捕獲您所說的呼叫者 IP 和時間戳以及您喜歡和需要的調用參數。

記錄每個請求你能做的最好的事情。 如果您想知道如何在 WCF 中獲取客戶端 ip,下面的方法對您有用。 然后你可以記錄那個 ip、請求時間等。

public string GetClientIp()
{
  OperationContext operationContext = OperationContext.Current;
  MessageProperties messageProps = operationContext.IncomingMessageProperties;
  RemoteEndpointMessageProperty endpointProps = (RemoteEndpointMessageProperty)messageProps[RemoteEndpointMessageProperty.Name];

  return endpointProps.Address;
}

您可以使用system.diagnostics配置嘗試使用參數信息記錄現有的日志 WCF 服務調用

或為IOperationInvoker創建自定義實現,如此處Log WCF Service Calls with Parameter information

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM