我有一個MVC5項目,溫莎城堡的IoC + NHibernate的組合有時多次,Asp.net MVC5發生的Application_Start每一個請求 - 每個請求
現在有沒有那麼多在那裏,但是當我調試功能的Application_Start在我的Global.asax我可以看到,被擊中的每個請求,
有時每隔幾十倍的一個請求......
我讀到的重新編譯即可發生,如果文件在IIS文件夾被改變 - 但我使用IIS Express - 並且不知道該文件夾在哪裏。
我們曾經有一個密度纖維板+的LocalDB我們的測試環境,所以我想這可能是莫名其妙的問題,所以我現在連接到SQLEXPRESS,我就拿密度纖維板從溶液中,
但仍然是同樣的問題...
什麼可能會導致此行爲?以及我如何進一步調查爲什麼會發生?
*我檢查 - 這似乎重定向到不同的動作,即使它重新加載MVC - 登錄後的Application_Start發生3次...
編輯1:
開始增加了一切新項目發現什麼導致的問題,該問題出現時,我加入了自定義的NHibernate UserStore我們提出新MVC5身份使用
public class NhUserStore : IUserStore<User>, IUserPasswordStore<User>
{
public ISession _session;
public NhUserStore(ISession session)
{
_session = session;
}
public Task CreateAsync(User user)
{
return Task.FromResult(_session.Save(user));
}
...
}
我認爲這是關係到會議在溫莎配置爲LifeStyle.Per事實WebRequest類和NhUserStore取決於會議,但我不知道爲什麼
這些都是我們的溫莎安裝:
public class ControllersInstaller : IWindsorInstaller
{
public void Install(IWindsorContainer container, IConfigurationStore store)
{
container.Register(Classes.FromThisAssembly()
.BasedOn<Controller>()
.LifestyleTransient());
container.Register(Classes.FromThisAssembly()
.BasedOn<ApiController>()
.LifestyleScoped());
}
}
我MVC5的模板注意到有:
public AccountController()
: this(new UserManager<ApplicationUser>(new UserStore<ApplicationUser>(new ApplicationDbContext())))
{
}
所以我用NH的會話像這樣:
public AccountController(ISession session)
: this(new UserManager<User>(new NhUserStore(session)))
{
}
public AccountController(UserManager<User> userManager)
{
UserManager = userManager;
}
我改變了UserMan的創建憤怒現在,它固定了一半,現在MVC重新啓動只有當使用UserStore,而不是每個請求,仍然多次使用UserStore的功能時
您不能在空白的新mvc5網站上重現該問題嗎? –
嘗試,到目前爲止配置windsor,但仍然沒有問題,現在將配置Nhibernate –
當我添加一個自定義Nhibernate UserStore時,會發生,嗯 –