簡體   English   中英

如何獲取特定WCF服務正在使用的綁定

[英]How to get the binding that a particular WCF service is using

有沒有辦法從服務類本身的對象實例中獲取WCF服務正在使用的綁定?

我目前正在調試WCF服務,並更改了客戶端綁定,並想查看它們是否是應用於代表服務接口的代理類的綁定。

ChannelFactory<IMyWCFService>.CreateChannel()正在使用ChannelFactory<IMyWCFService>.CreateChannel()方法創建代理類。 但是,由於這是MVC Web應用程序,因此方法調用是通過依賴注入完成的。 因此,代理對象被注入到我的代碼中。

因此,為了清楚起見,在代碼中我使用代理對象時,我無權訪問原始ChannelFactory。 我知道ChannelFactory在設置Global.asax.cs類中的依賴項注入容器時正在使用的綁定。 但是,由於我們使用依賴項注入,因此不能保證ChannelFactory或Global.asax.cs中定義的綁定實際上是用於創建代理對象的對象,因為它可能已被其他代碼更改。 我遇到的問題是,我們正在Global.asax.cs類中使用的綁定上顯式更改設置值,但是此設置未生效,這使人們懷疑正在使用其他綁定。

您可以從Endpoint服務對象獲取綁定:

var service = new Service1Client();
Binding binding = service.Endpoint.Binding;
Console.WriteLine(binding);

暫無
暫無

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

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