我被要求调查在运行我的团队应用程序的WebServer上间歇性地发生的问题。
基本上,我们有一个在代码之间进行查找的Web服务。如果您有代码类型A,则可以使用它来查找相应的代码类型B.当内存不足时,当调用此Web服务时,会抛出空引用异常。本质上,此服务将查找文件加载到缓存中,并依赖于文件,因此如果文件出现问题,则会使用新文件重新加载缓存。缓存对象的优先级设置为默认值。我猜测代码中的某个地方,没有验证缓存对象是否仍在那里,当服务器上的内存变低时,该对象被转储导致错误。在开始深入研究这段代码之前,我希望能够重新创建错误并进行验证。
在IIS管理器(或命令提示符)中是否有办法强制正在运行的Web应用程序转储它的缓存?我认为这应该重新创建条件,因此重新创建bug。更不用说,看到细节错误应该导致代码的正确部分。
谢谢,
Steve Brouillard
答案 0 :(得分:0)
我的直觉反应是将WebMethod的CacheDuration设置为零,然后回到你想要的任何持续的基础上。我没有试过这个,但我认为这会转储缓存,然后重新开始形成......
答案 1 :(得分:0)
我找到了一个可以添加到ASP.NET应用程序的实用程序,它允许您作为整体或单个缓存对象动态管理缓存。感谢.NET Rocks!和dnrtv。
这是我使用的工具的链接。这使我能够即时清除有问题的特定对象,并证明错误。
感谢大家的帮助。 ASP Alliance Cache Manager.
史蒂夫