MVC:为单个视图缓存的代码。不存在的例外情况

时间:2014-10-15 07:28:03

标签: c# asp.net-mvc caching view

我们有一个由4个开发人员开发的项目。有时会出现一个不应该存在的异常,人们会开始为什么会发生这种情况。通常它会说"无法加载类型''来自汇编'。

它尝试加载的类型不再存在,因此引用它将毫无疑问地导致此异常。问题是,即使视图说它没有代码也不再引用此类型。 上次发生这种情况时,这段代码抛出异常

@{
    Layout = "_Layout.cshtml";
    MyProfile profile = MyProfile.GetUserProfile();    
}

它说:

Could not load type 'MyProject.Lib.MyService.Services.MyProfileBase' from assembly 'MyProject.Lib.MyService, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null'.

如果我在我们的源代码管理中检查" MyProfile"我可以看到它继承自类" MyProfileBase"昨天但已被删除。

那为什么还要尝试加载这个旧代码呢? 解决这个问题很简单。我需要做的就是用任何东西编辑Index.cshtml视图。它可能只是一个换行符或某个地方的空间。然后异常就消失了。 问题是,为什么会这样?有谁认出来了吗?它几乎就像代码被缓存用于这种个人观点一样。

在我们意识到我们需要做的就是编辑视图之前,我们可能会浪费时间对此进行排查。回收应用程序池甚至执行IISreset都无助于此异常。

0 个答案:

没有答案