제 상황은 훨씬 복잡하지만 쉽게 재현 할 수 있습니다. 새로운 ASP.NET MVC 4 웹 응용 프로그램 프로젝트로 시작하여 웹 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
}
그 것은 첫 번째 요청에서만 작동합니다. 후속 요청에 그것은
.'RequestMessageHandlerTracer'의 재산 'InnerHandler는'null이 아니기 때문에 'DelegatingHandler'목록이 유효로 발생합니다. 매개 변수 이름 : 핸들러 정말 내 시스템이 정말 열심히 작업 방법 (또는 다른 곳) 내에서 해당 구성을 재구성 할 수 있습니다 기반 매우 모듈/플러그인이기 때문에 여기에 GlobalConfiguration.Configuration를 사용할 필요가
10 배 많이 해결되었습니다. – Bond