Asp.Net Assembly没有运行

时间:2010-11-18 18:15:11

标签: c# iis

我当前的问题是我在调试时更改了我更改的程序集,但我似乎无法在将代码复制到的舞台服务器上识别新代码。

我不想这么说,但是现在我可以如实地说“它在我的机器上运行”。好消息是,同样的代码在另一台人机器上的开发工作方式相同。

我用反射器打开了WebSite.dll并验证了反汇编到源代码,我的新东西就在那里。

我也重新启动了网站和应用程序池,并且没有任何旧代码可以归咎于我。

是否有某些缓存我必须在某处无效?

VS2010,C#4.0,IIS7,Windows Server 2008。

谢谢, 约什

2 个答案:

答案 0 :(得分:1)

您可以使用三种方法来查看可用的访问级别。 使用SysInternals Process Explorer

单击某个进程时,DLL将显示在下方窗格中。它将包括作为工具提示加载的位置,您可以选择它作为要显示的列。

让Dll内存不足

首先获取ASPNET Worker进程的内存转储。 See this question如何 Matt Everson接受的答案是使用SysInternals VMMap ......

  

有命令行选项   脚本,并可能会给你   你需要的信息。

     

vmmap.exe -p w3wp.exe C:\ memory.txt

完成后,您可以使用WinDbg验证内存中的模块(Dlls)。来自Roberto Farah的This article向您展示了如何执行此操作,然后将其从内存中提取到磁盘,然后像以前一样使用反射器。

装配绑定日志查看器

您可以使用Assembly Binding Log Viewer使用,它会告诉您确切的加载内容和来源。这是一个更好的方法,但要求您进行注册表更改以打开某些人在非开发框中回避的日志记录。

答案 1 :(得分:1)

之前我遇到过类似的问题,如果您使用的反射可能需要访问GAC中可能导致问外部图书馆也......