无法重置WebAPI

时间:2016-06-20 10:47:37

标签: c# asp.net-web-api

我尝试通过将程序集添加到bin文件夹来在运行时加载其他WebAPI控制器。此时WebAPI应用程序重新启动,当WebAPI尝试注册所有控制器(旧的和新的)时, HttpControllerTypeCache DefaultHttpControllerSelector 内部缓存只返回旧的,缓存的控制器列表并且没有加载新的。

奇怪的是,我的应用程序进程没有重新启动,只有应用程序是,所以要么我在这里遗漏了一些东西,要么我应该清除控制器缓存。我试图重新启动IIS和IIS WebSite,应用程序池,终止进程并且新的ddls不会加载(根本没有意义)。正确重启应用程序并加载新dll的唯一方法是重建WebAPI项目,再次奇怪。

我试图清除控制器缓存,但无法找到正确的方法,通过查看源代码,我可以看到所有内容都是私有的,内部的等等。

是否有良好的扩展点可以启动并清除缓存,或者IIS中是否存在某些设置会导致此类行为?

环境: Windows 10,.NET 4.5.1,IIS 10

0 个答案:

没有答案