【发布时间】:2012-03-05 18:09:57
【问题描述】:
我已经安装了 Visual Studio 2011 beta,并且发现我正在开发的网站已经停止工作。有人建议有一个来自 GAC 的 MVC 或 Razor 程序集正在加载和接管。我将如何检查这个?
【问题讨论】:
标签: asp.net .net visual-studio-2010 gac .net-assembly
我已经安装了 Visual Studio 2011 beta,并且发现我正在开发的网站已经停止工作。有人建议有一个来自 GAC 的 MVC 或 Razor 程序集正在加载和接管。我将如何检查这个?
【问题讨论】:
标签: asp.net .net visual-studio-2010 gac .net-assembly
在调试模式下运行应用程序并在 Visual Studio 中观察Output window。它将列出加载的每个程序集,您将通过其完整文件路径轻松识别 GAC 程序集。
【讨论】:
只是感兴趣,让我们在运行时进行。这个想法是 - 检查所有加载的 MVC 程序集的 Assembly.GlobalAssemblyCache 属性。
将以下代码 sn-p 放在Page_Load() 的某处,并在文件中查看是否从 GAC 加载了特定程序集:
using System.Linq;
var items = AppDomain.CurrentDomain
.GetAssemblies()
.Where(a => a.FullName.Contains("MVC"))
.Select(a => String.Format(
CultureInfo.InvariantCulture,
"[{0}] {1}",
a.GlobalAssemblyCache,
a.FullName));
File.WriteAllLines("c:\\assembliesdump.txt", items .ToArray());
输出将如下所示(以log4net过滤器为例):
[False] log4net,版本=1.2.10.0,文化=中性, PublicKeyToken=1b44e1d426115821
【讨论】: