我正在使用WCF进行REST API开发。
我们可以通过设置
返回错误代码jaxb2-annotate-plugin-support
目前我使用以下内容,因为它提供了更清晰,更明显的代码
WebOperationContext.Current.OutgoingResponse.StatusCode
但是在使用此方法时,如果频繁抛出异常,IIS会将其视为快速失败并根据快速失败保护策略停止应用程序池。
这是返回错误的正确方法吗?我应该修改或关闭快速失败策略还是有更好的方法?
答案 0 :(得分:2)
您可以利用:
WebFaultException<T>(T detailedObject, HttpResponseCode code)
其中detailedObject是您的自定义响应对象,应该是可序列化的。
答案 1 :(得分:1)
你可以像这样创建一个响应对象:
public class WebServiceOutput
{
public object Data { set; get; }
public bool HasError { set; get; }
public string Code { set; get; }
public string Description { set; get; }
}
然后,您可以返回带有布尔值的输出,而不是抛出异常。
telegram bot API就是一个很好的例子。
答案 2 :(得分:1)
您可以使用out参数并使用异常消息或自定义表达式设置catch异常。 写入服务界面:
$('body').on('select2:open', '.resCombo', function (event) {
var $el = $(event.target);
$el.find('option').removeAttr('disabled');
$('.resCombo').not($el).find('option:selected').each(function (index,el) {
console.log($(el).val());
$el.find('option[value="'+ $(el).val() +'"]').attr('disabled','disabled');
})
$el.trigger('change.select2');
});
如果要在服务接口中使用void方法,可以将方法返回类型更改为string,并将错误消息作为returen。
List<MyClass> GetResults(p1, out string message);
之后,在服务中使用define方法,如下所示:
public string SaveResults(List<MyClass>)