ASP.Net Web API中的委托处理程序返回错误的状态代码

阿比·库玛(Abhay kumar)

我有一个带有以下委托处理程序的ASP.Net Web API:

public class AuthenticationHandler : DelegatingHandler
{
    public ILogger Logger { get; set; }
    public AuthenticationHandler(ILogger logger)
    {
        this.Logger = logger;            
    }

    protected override Task<HttpResponseMessage> SendAsync(HttpRequestMessage request, System.Threading.CancellationToken cancellationToken)
    {
        X509Certificate2 certificate = request.GetClientCertificate();

        if (certificate == null)
        {
            Logger.LogWarning("No certificate found on the request.");
            return Task<HttpResponseMessage>.Factory.StartNew(
                () => request.CreateResponse(HttpStatusCode.Unauthorized));

        }

        if (!IsValidCertificate(certificate))
        {
            Logger.LogWarning("Certificate found on the request is not valid. Thumbprint : " + certificate.Thumbprint);
            return Task<HttpResponseMessage>.Factory.StartNew(
                () => request.CreateResponse(HttpStatusCode.Unauthorized));
        }
    }
}

该处理程序已在Global.asax.cs中注册。该站点托管在IIS 8.5中。问题不是在证书错误的情况下返回未授权,而是在客户端返回状态500内部服务器错误。正确的证书没有问题。另外,如果我将代码块放入try / catch中,似乎也没有例外。在调试时,该代码返回带有未授权状态代码的异步任务,但是客户端收到500。事件查看器中未记录任何错误。Web API使用的是.Net 4.5.1。

我有什么想念的吗?任何帮助表示赞赏。

阿比·库玛(Abhay kumar)

System.Net.Http.Formatting程序集是问题。系统正在寻找5.2.0.0时,签入版本为5.2.2.0。在web.config中添加了程序集绑定重定向,从而解决了该问题。只有通过@Fals的建议,让提琴手做出回应才能发现该问题。服务器端调试无济于事。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

.net 核心 asp.net web api 操作返回意外的状态代码

来自分类Dev

缓存Asp .Net Web API

来自分类Dev

ASP.NET 5 Web API返回状态代码和正文

来自分类常见问题

从ASP.NET Web API返回HTML

来自分类Dev

ASP .NET Web API返回JSON文件

来自分类Dev

ASP .NET Web API返回JSON文件

来自分类Dev

使用ASP.NET Web API处理错误的最佳实践

来自分类Dev

ASP.NET Web Api返回错误数据

来自分类Dev

ASP.NET Web服务中的错误

来自分类Dev

ASP.NET中的Web配置错误

来自分类Dev

ASP.NET Core Web API-JWT消息处理程序-没有注册的类型错误

来自分类Dev

Web API中的ASP.NET身份

来自分类Dev

Angularjs + ASP.NET MVC + ASP.NET Web API

来自分类Dev

ASP.NET Web表单中的ASP.Net路由

来自分类Dev

在ASP.NET MVC Web Api中返回Json

来自分类Dev

ASP .Net Core Web 应用程序调用 Web API

来自分类Dev

ASP.NET Web API 2 控制器中的模型验证并在不同的验证中返回不同的状态代码失败

来自分类Dev

消耗错误的Web服务ASP.NET

来自分类Dev

装饰ASP.NET Web API IHttpController

来自分类Dev

ASP.net MVC Web API + Android

来自分类Dev

视图中的ASP.NET Web Api

来自分类Dev

ASP.NET Web API操作缓存

来自分类Dev

ASP.Net Web API:添加appSettings

来自分类Dev

ASP.NET Web API登录方法

来自分类Dev

Web Api Asp.Net身份

来自分类Dev

验证ASP.NET Web API

来自分类Dev

ASP.NET Web API的多个RoutePrefix

来自分类Dev

ASP.NET Web API会话数据

来自分类Dev

ASP.NET Web Api重复动词