5
ASP.NET WebApi2設定でOWINに問題が発生しています。再起動後の最初のリクエストでは、例外が発生します。 OWINを使用したWeb APIがHttpMessageInvokerのObjectDisposedExceptionをスローする
[ObjectDisposedException: Cannot access a disposed object. Object name: 'System.Net.Http.HttpMessageInvoker'.] System.Net.Http.HttpMessageInvoker.CheckDisposed() +327456 System.Net.Http.HttpMessageInvoker.SendAsync(HttpRequestMessage request, CancellationToken cancellationToken) +24 System.Web.Http.Owin.<InvokeCore>d__0.MoveNext() +501 System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task) +99 System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) +58 Microsoft.Owin.Host.SystemWeb.IntegratedPipeline.<RunApp>d__5.MoveNext() +187 System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task) +99 System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) +58 Microsoft.Owin.Host.SystemWeb.IntegratedPipeline.<DoFinalWork>d__2.MoveNext() +185 Microsoft.Owin.Host.SystemWeb.IntegratedPipeline.StageAsyncResult.End(IAsyncResult ar) +69 Microsoft.Owin.Host.SystemWeb.IntegratedPipeline.IntegratedPipelineContext.EndFinalWork(IAsyncResult ar) +64 System.Web.AsyncEventExecutionStep.System.Web.HttpApplication.IExecutionStep.Execute() +483 System.Web.HttpApplication.ExecuteStep(IExecutionStep step, Boolean& completedSynchronously) +157この問題は、EF DbContextに初めてアクセスしたときに長時間実行されるタスクが原因であると考えられます。すべての最初の要求はすべて約4-6000msです。この最初の要求の後、それ以上の例外はありません。
私はWEBAPIプロジェクトと、次のOWINの起動(なしGlobal.asaxの)を簡略化した形で問題を再現しています
public class Startup
{
public void Configuration(IAppBuilder app) {
var config = new HttpConfiguration();
config.MapHttpAttributeRoutes();
// ---- simulate long running initialization code -------
Thread.Sleep(3000);
// ------------------------------------------------------
app.UseWebApi(config);
}
}
私はコントローラを追加:
[Route("api/test/number")]
public class TestController : ApiController
{
public object Get() {
return 42;
}
}
私はこれを要求して、最初のリクエストで例外が発生します。
私はこの同じ問題があります。おそらく誰も応答がない場合は、asp.netチームに報告する必要がありますか? –
私も同じ例外があります。私はバグだと思う。 – tia