我有一個分層的Web應用程序,我用ASP.NET MVC 4,WebAPI和其他一些組件構建。我使用最新版本的Autofac 2.6.2.859作爲我的DI容器以及MVC和WebAPI集成。我在不同的圖層中設置了autofac模塊,並且我使用新的RegisterAssemblyModule來掃描各個模塊的AppDomain程序集。Autofac在Web.Config上丟失註冊編輯
在啓動時,每件作品都很棒。當我編輯web.config文件並且應用程序變暖時,我的註冊信息將丟失。我得到一個DependencyResolutionException -
建設者沒有發現與類型「My.Class.Name」公共綁定標誌「可以與提供的服務和參數來調用:
所以我註冊沒有被重新加載。有誰知道如何解決這個問題?我應該把我的初始化代碼放在Application_Start()以外的其他地方嗎?
UPDATE
這裏是我的代碼是什麼樣子
public static class IoC
{
public static void Configure()
{
var builder = new ContainerBuilder();
var assemblies = AppDomain.CurrentDomain.GetAssemblies();
//Assembly Modules
builder.RegisterAssemblyModules<NSUTriviaModuleBase>(assemblies);
// Register API controllers using assembly scanning.
builder.RegisterControllers(assemblies);
// Register API controllers using assembly scanning.
builder.RegisterApiControllers(assemblies);
var container = builder.Build();
// Set the dependency resolver implementation.
var resolver = new AutofacWebApiDependencyResolver(container);
GlobalConfiguration.Configuration.DependencyResolver = resolver;
DependencyResolver.SetResolver(new AutofacDependencyResolver(container));
}
}
有趣 - 您是否在調試時運行此操作,例如:在卡西尼或IIS Express中,或者你正在做什麼? :) –
它在具有IIS 6和.NET 4.0的遠程登臺服務器上以調試模式運行。它在本地IIS 7.5 Express上正常工作。只有在有回收的情況下才會出現錯誤。 – cecilphillip
您是否可以設置任何跟蹤/日誌記錄來檢查錯誤發生時DependencyResolvers的狀態?他們是否仍然是Autofac的? –