我有一个ASP.NET Web服务,请求中的一些字段被定义为枚举。输入空白或无效值时,响应将返回:
Parameter name: type ---> System.ArgumentException: Must specify valid information for parsing in the string.
at System.Enum.Parse(Type enumType, String value, Boolean ignoreCase)
at System.Web.Services.Protocols.ScalarFormatter.FromString(String value, Type type)
--- End of inner exception stack trace ---
at System.Web.Services.Protocols.ScalarFormatter.FromString(String value, Type type)
at System.Web.Services.Protocols.ValueCollectionParameterReader.Read(NameValueCollection collection)
at System.Web.Services.Protocols.HtmlFormParameterReader.Read(HttpRequest request)
at System.Web.Services.Protocols.HttpServerProtocol.ReadParameters()
at System.Web.Services.Protocols.WebServiceHandler.CoreProcessRequest()
是否可以捕获这样的错误并返回基于XML的响应?
答案 0 :(得分:2)
不,使用ASMX Web服务无法做到这一点。
当然,您可以使用WCF执行此操作。
当然,如果您的客户发送有效数据会更好。你可能想知道它们为什么不是。
答案 1 :(得分:-1)
当然,它看起来像这样:
try
{
Enum.Parse(Type enumType, String value, Boolean ignoreCase)
}
catch (ArgumentException e)
{
//Serialise exception information from 'e' into XML
//(not shown here) and set it as the response
Response.Write(xmlMessage);
Response.End();
}