I am developing a Web api which is self hosted using OWIN and the controller creation is deligated to Castle Windsor container , based on the article from the link (http://ift.tt/1Ldmvry) All my API methods are asynchronous and I am using await calls inside injected objects as well , but it seems that my controller get released even before my async methods complete. Below is my controller creation code. I have even commented out the the controller release code.
public class TestCompositionRoot : IHttpControllerActivator { private readonly IDependencyManager _dpendencyManager;
public POSCompositionRoot(IDependencyManager container)
{
_dpendencyManager = container;
}
public IHttpController Create(
HttpRequestMessage request,
HttpControllerDescriptor controllerDescriptor,
Type controllerType)
{
var controller =
(IHttpController)_dpendencyManager.Resolve(controllerType);
//request.RegisterForDispose(
// new Release(
// () => _dpendencyManager.Release(controller)));
return controller;
}
private sealed class Release : IDisposable
{
private readonly Action _release;
public Release(Action release)
{
_release = release;
}
public void Dispose()
{
_release();
}
}
}
Aucun commentaire:
Enregistrer un commentaire