【发布时间】:2014-04-07 13:14:18
【问题描述】:
我有一个 Wcf(启用 ajax)服务,它接受方法调用的对象。我的 Wcf 方法如下所示;
[OperationContract]
[XmlSerializerFormat]
[WebInvoke(Method = "POST", UriTemplate = "/XML/GetTypes", BodyStyle = WebMessageBodyStyle.Bare, ResponseFormat = WebMessageFormat.Xml)]
XElement XMLGetTypes(TypeRequest TypeRequest)
{
return Utilities.Convert.ObjectToXElement(TypeRequest.Execute(TypeRequest));
}
'TypeRequest'对象如下;
public class
{
public int Id {get;set;}
public string Name {get; set;}
}
我遇到的问题是,如果我使用请求对象中的无效数据调用该方法,例如;
<TypeRequest>
<Id>abc</Id>
<Name>Joe King</Name>
</TypeRequest>
如您所见,Id 应该是一个整数,但它是作为字符串传递的。这会导致来自 Wcf 服务的错误请求 400 响应。
理想情况下,我想处理错误并返回合适的响应。例如,我想返回包含错误信息的 JSON 或 XML 响应。
这可能吗?
【问题讨论】:
-
您从 WCF 得到的错误是什么?
-
System.Net.WebException:远程服务器返回错误:(400)错误请求,因为请求传递的是字符串而不是整数