我正在尝试构建WPF程序,根据作为服务引用添加的WSDL将Soap请求创建为xml文件。
问题是我无法配置代理类来使用该xml文件并将其作为请求发送以及接收响应。它给了我一个例外:
类型&System; Service.ServiceModel.FaultException`1'的未处理异常发生在mscorlib.dll中 附加信息:APPLICATION ERROR
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 :(得分:0)
编辑代码以忽略不与webservice调用交互的对象给出:
ConsignmentEndpointClient proxy = new ConsignmentEndpointClient();
save sv = new save();
response= proxy.save(sv); /*Here occur the exception*/
在不知道网络服务期望的情况下,它看起来就像你正在尝试保存一个全新的对象,这个对象没有以任何方式改变(可能是,也可能不是,有效的事情)。你没有处理它抛出的异常,这就是为什么它没有处理 - 你可以简单地将它移动到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;
}
}