2012-04-16 181 views
0

我箱使用C#。對於使用本文如何在客戶端應用程序

http://highcoding.blogspot.in/

中指定的DLL加密的響應,一個web服務WebMetod

[WebMethod] 
[EncryptionExtension(Decrypt = DecryptMode.None, Encrypt = EncryptMode.Response, Target = Target.Body)] 
[TracingExtension(TracingMode = TracingMode.Response, MethodName = "HelloWorld")] 
public string HelloWorld() { 
    return "Hello World"; 
} 

使用SOAP擴展我創建了一個Web服務客戶端使用c#windows應用程序。

ServiceReference1.ServiceSoapClient ob = new WindowsFormsApplication2.ServiceReference1.ServiceSoapClient(); 
     string st = ob.HelloWorld(); 

在這裏,我得到一個錯誤「從命名空間‘http://schemas.xmlsoap.org/soap/envelope/’結束元素‘身體’預期」

加密是working.But我想和不能找到解決客戶端數據的方法。任何人都知道如何在客戶端處理這個問題?

回答

0

在代理客戶端代碼中,「EncryptionExtension」屬性添加到HelloWorld的方法

[EncryptionExtension(Decrypt = DecryptMode.Response, Encrypt = EncryptMode.None, Target = Target.Body)] 
public string HelloWorld() 
{ 
    object[] results = this.Invoke("HelloWorld", new object[] { }); 
    return ((string)(results[0])); 
} 

注意,這些代理是自動生成的代碼。每次您對Web服務進行更改時,都會重新生成並且您的更改將會丟失。

處理這種情況的最佳方法是通過配置進行配置soap擴展。請點擊此鏈接瞭解如何操作。

http://fluentbytes.com/applying-soap-extension-client-proxy-without-altering-generated-proxy-code/

+0

Hai Raj ..我會試試這個。 – user922834 2012-04-16 14:25:14

+0

我在哪裏需要把這個代碼..我試圖通過在reference.cs文件中添加..它不工作 – user922834 2012-04-16 14:33:37

+0

在哪裏定義這個「調用」方法? – user922834 2012-04-16 14:36:19