4
的RenderAction
我用我的溫莎城堡器廠與新方法的RenderAction當運行到一個問題。我收到以下錯誤信息:城堡溫莎控制器廠和
控制器的單個實例「myController的」不能被用來處理多個請求。如果自定義控制器工廠正在使用中,請確保它爲每個請求創建控制器的新實例。
這是在我的控制器工廠代碼:
public class CastleWindsorControllerFactory : DefaultControllerFactory
{
private IWindsorContainer container;
public CastleWindsorControllerFactory(IWindsorContainer container)
{
this.container = container;
}
public override IController CreateController(RequestContext requestContext, string controllerName)
{
return container.Resolve(controllerName) as IController;
}
public override void ReleaseController(IController controller)
{
this.container.Release(controller);
}
}
有誰知道什麼樣的變化,我需要做,使其與工作的RenderAction?
我還發現錯誤消息有點不一樣,因爲它談論的多個請求,但我可以告訴的RenderAction實際上並沒有創建另一個請求(的BeginRequest不會再次發射)。
你是對的。 Windsor組件的默認生活方式是單身。 – PatrickSteele 2010-05-06 22:36:23
你也可以把它註冊爲通過流暢API http://stw.castleproject.org/Windsor.Registering-components-one-by-one.ashx?HL=transient#Configuring_components_lifestyle_3短暫的。使用XML進行註冊並不被視爲最佳實踐。 – 2010-05-07 06:00:24