2016-04-06 217 views
2

我正在嘗試構建WPF程序以根據作爲服務引用添加的WSDL創建Soap請求作爲xml文件。
問題是我無法配置代理類來使用該xml文件並將其作爲請求發送以及接收響應。它給了我一個例外:發送Soap請求並捕獲響應

類型的未處理的異常「System.ServiceModel.FaultException`1」出現在mscorlib.dll 其他信息:應用程序錯誤

public string returnSerializedxml(object input) 
{ 
    XmlSerializer xmlSerializer = new XmlSerializer(input.GetType()); 

    using (StringWriter textWriter = new StringWriter()) 
    { 
     xmlSerializer.Serialize(textWriter, input); 
     return textWriter.ToString(); 
    } 
} 

private void button1_Click(object sender, RoutedEventArgs e) 
{ 
    ConsignmentEndpointClient proxy = new ConsignmentEndpointClient(); 
    save sv = new save(); 
    saveResponse response = new saveResponse(); 
    XmlDocument doc = new XmlDocument(); 
    doc.Load(PATH); 
    response= proxy.save(sv); /*Here occur the exception*/ 

    try 
    { 
     Output.Text = "Response : \n" + returnSerializedxml(response);  
    } 
    catch (Exception error) 
    { 
     Output.Text = "Error in Request : \n" + error; 
    } 

回答

0

編輯代碼下來忽略不與web服務調用給出的對象:

ConsignmentEndpointClient proxy = new ConsignmentEndpointClient(); 
save sv = new save(); 
response= proxy.save(sv); /*Here occur the exception*/ 

不知道web服務是什麼期待,它看起來像就像你試圖保存一個全新的對象,這並沒有以任何方式改變(這可能或可能不是一個有效的事情)。你不處理異常,它拋出,這就是爲什麼它是未處理的 - 你可以簡單地移動,要成爲呼叫進入try塊的範圍內,所以更多的東西一樣:

private void button1_Click(object sender, RoutedEventArgs e) 
{ 
    try 
    { 
     ConsignmentEndpointClient proxy = new ConsignmentEndpointClient(); 
     save sv = new save(); 

     throw new NotImplementedExcetpion("This probably needs to be associated with your sv object in some way, or just removed altogether"); 

     XmlDocument doc = new XmlDocument(); 
     doc.Load(PATH); 
     saveResponse response = proxy.save(sv); /*Here occur the exception*/ 

     Output.Text = "Response : \n" + returnSerializedxml(response);  
    } 
    catch (Exception error) 
    { 
     Output.Text = "Error in Request : \n" + error; 
    } 
}