Web API“内存中”请求引发异常

温特斯拉夫·赖科夫(Ventsyslav Raikov)

好的,我的情况要复杂得多,但是有一种简单的复制方法。从一个全新的ASP.NET MVC 4 Web应用程序项目开始,然后选择Web API作为模板,我只是向HomeController添加了第二个mvc操作,需要在其中内部调用Web API。

 public async Task<string> TestAPI()
    {
        HttpServer server = new HttpServer(GlobalConfiguration.Configuration);
        using (HttpMessageInvoker messageInvoker = new HttpMessageInvoker(server, false))
        {
            HttpRequestMessage request = new HttpRequestMessage(HttpMethod.Get, "http://localhost:58233/api/values");
            request.Headers.Accept.Add(new MediaTypeWithQualityHeaderValue("application/json"));
            var response = messageInvoker.SendAsync(request, new CancellationToken()).Result;
            return await response.Content.ReadAsStringAsync();
        }

        //server.Dispose(); - if I do that on the second request I get a "Cannot access a disposed object." exception
    }

那件事只在第一个请求上起作用。在随后的请求中,它抛出

“ DelegatingHandler”列表无效,因为“ RequestMessageHandlerTracer”的“ InnerHandler”属性不为空。参数名称:处理程序

我真的需要在这里使用GlobalConfiguration.Configuration,因为我的系统是基于模块化/插件的,这使得在action方法(或其他任何方法)中重构该配置非常困难。

达雷尔·米勒(Darrel Miller)

我建议尝试在辅助请求上重用HttpServer实例。在每个请求上创建和配置新服务器都不是预期的用途,您可能会遇到一些麻烦。要么设置DI机制,然后将HttpServer单例注入到您的控制器中,要么尝试从某个静态属性访问它。

我也建议使用new HttpClient(httpServer)而不是HttpMessageInvoker。

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

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

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

如何在ASP.NET Web Api服务中不引发异常?

来自分类Dev

我应该在.Net Web Api 2中返回状态码还是引发异常

来自分类Dev

Web API中的内存缓存

来自分类Dev

处理Web API中的异常

来自分类Dev

通过Lambda表达式引发异常时如何在ASP.NET Web API中全局处理异常

来自分类Dev

在Azure中请求Web API请求超时

来自分类Dev

在Play框架中调用Web服务会引发执行异常

来自分类Dev

在Play框架中调用Web服务会引发执行异常

来自分类Dev

如何在请求json中收到未映射的字段时强制Web API引发错误

来自分类Dev

在Web API中访问类的异常

来自分类Dev

Web API中的异常处理并返回JSON

来自分类Dev

Web Api异常处理

来自分类Dev

Web API中的请求始终为null?

来自分类Dev

如何在Web Api中限制请求?

来自分类Dev

4.0框架中的Web API请求

来自分类Dev

Web API中的多个POST请求

来自分类Dev

如何在Web Api中限制请求?

来自分类Dev

Web API中的多个POST请求

来自分类Dev

不等待 web api 请求中的任务

来自分类Dev

Web Api请求超时?

来自分类Dev

Web Api请求超时?

来自分类Dev

如何在Web API项目中记录在依赖项解析期间引发的异常?

来自分类Dev

Web Api请求引发“将内容复制到流时出错”。

来自分类Dev

在Web API中处理OnApplicationError事件中的异常

来自分类Dev

在Web API中处理OnApplicationError事件中的异常

来自分类Dev

在Tomcat的Web应用程序中记录所有引发的异常

来自分类Dev

在Tomcat的Web应用程序中记录所有引发的异常

来自分类Dev

从 web api 方法返回异常

来自分类Dev

在ASP.NET Web Api中请求“外来” Api