日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

WSE 3.0异步调用, MTOM, Custom Policy Trace Assertion

發布時間:2025/1/21 编程问答 45 豆豆
生活随笔 收集整理的這篇文章主要介紹了 WSE 3.0异步调用, MTOM, Custom Policy Trace Assertion 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
1. 異步調用Web Service
??? 對Web Service端沒有要求,只是Client端調用方法上不同。
private?string?_guid?=?Guid.NewGuid().ToString().ToUpper();

MyServiceRef.MyServiceWse?serviceProxy?
=?new?WSEClient.MyServiceRef.MyServiceWse();
serviceProxy.HelloWorldCompleted?
+=
??????? new
?WSEClient.MyServiceRef.HelloWorldCompletedEventHandler(serviceProxy_HelloWorldCompleted);
serviceProxy.HelloWorldAsync(_guid);

private?void?serviceProxy_HelloWorldCompleted(object?sender,?MyServiceRef.HelloWorldCompletedEventArgs?args)
{
????
if?(args.Error?!=?null)
????{
????????
//process?for?exception
????}
????
else?if?(args.Cancelled)
????{
????????
//cancelled
????}
????
else
????{
????????
//process?for?success
????????string?result?=?args.Result;
????}
}
??? 取消調用:serviceProxy.CancelAsync(_guid);,客戶端的處理被立刻Cancel,服務器端則不一定,可能需要等到Web Service方法執行完畢。

??? 2. Custom Policy Trace Assertion
??? 參考WSE 3.0 samples中的CustomPolicyTraceAssertion。首先分別繼承PolicyAssersion和SoapFilter兩個類,實現自定義的Trace功能,然后參照Samples的wse3policyCache.config手工添加相關的配置節點。
??? 另外需要注意的一點是WSE 3.0 Server端和Client端output filter、input filter的處理機制,弄明白每一個SOAP消息在經過output filter或者input filter前后所發生的變化,以及對應于security policy配置文件中的位置關系,這樣能準確地確定你需要記錄的Trace的信息。以CustomPolicyTraceAssertion的Sample為例,假如Web Service端的配置如下:
???
??? 圖中的input1.xml、input2.xml、output1.xml、output2.xml所截取的SOAP消息位置分別如下圖:
???
??? 下標為2的文件截取的都是經過WSE簽名、加密處理之后的SOAP消息,而下標為1的則是未經過WSE簽名、加密的原始SOAP消息。上圖只是一個示例,在WSE 3.0的Sample中,兩個traceAssertion中的inputfile必須為同一個文件,outputfile也一樣。你可以選擇只記錄未加密的SOAP消息,只需要刪除第一個traceAssertion就可以。

??? 3. MTOM
??? MTOM在WSE 3.0中用于服務器端和客戶端傳遞二進制文件等數據,或者用于大數據量的消息。MTOM允許在傳遞大數據量或二進制文件時使用WSE 3.0消息層的安全性機制,另外對于大數據量采用了優化措施,提高傳輸效率。
??? 使用MTOM很簡單,首先使用WSE 3.0 Settings工具分別為Web Service和Client設置啟用MTOM(或者也可以在代碼上進行設置),然后傳送方將要傳送的數據轉化成byte[]發送給接收方,接受方收到數據后保存成文件或做其他處理。WSE 3.0 Samples中的MTOM示例演示了三種方式:不加密傳輸、加密傳輸、通過IXmlSerializable直接使用網絡流(Network Stream)傳輸。

??? 把WSE 3.0的代碼翻看了一下,本來準備對filter、pipeline方面調用序列、大致處理,以及數字簽名處理過程、CA證書的使用細節等方面再詳細寫一寫,但這篇post已經掛在草稿中2個多月了,一直沒有時間來整理。

總結

以上是生活随笔為你收集整理的WSE 3.0异步调用, MTOM, Custom Policy Trace Assertion的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。