在控制器上找不到公共操作方法pagerror.gif / refresh.gif - 谁正在调用那个gif?

时间:2010-08-09 12:10:48

标签: asp.net-mvc

Hello stackoverflow世界。 (这是我第一次在这里发帖提问。激动人心)

不久前,我从我公司的一个团队继承了一个2岁的MVC网站。我现在知道这个解决方案的大部分细节,但是我的错误日志中出现了一些奇怪的东西,我不明白。

我偶尔会收到类似这样的错误消息:

  

在控制器MyNamespace.MyController上找不到公共操作方法'xyz。 gif '

我不明白为什么这个动作(一个gif图像)首先被调用?

我在错误日志中看到了2种不同的GIF pageerror.gif refresh.gif

由于这是一个继承的解决方案,我仔细检查了所有内容并确保实际上在项目中没有像这样的图像,甚至在控制器,视图,样式表甚至源代码中的任何地方都没有引用同一控制器内的页面数。

我严重怀疑用户正在玩这些网址并向他们添加随机gif名称以查看会发生什么。

我完全没有想法。谁能在那里建议更多地方寻找罪魁祸首?

的Ta!

4 个答案:

答案 0 :(得分:2)

正如Tchami在对原始问题的评论中指出的那样,这与Internet Explorer的默认错误页面有关。

由于我设置了自定义错误页面,我认为这可能是由于内部服务器错误或可能是某种方式来自客户端的操作取消错误,即客户端错误。在这一点上我不能100%。

问题没有得到完全回答,但我大多知道现在的原因。

从我的角度来看,我已经确定我需要改进这个ASP.NET MVC应用程序,以便

1)当有人试图导航到不存在的控制器操作时(例如,这些refresh.gif操作或任何其他操作),它不报告/记录错误

和2)更好地为客户端处理它,以便它们不会从一个错误页面(默认IE错误页面)到另一个错误页面(单击IE页面上的刷新图标时我的自定义错误页面)点击

相关主题的另一个stackoverflow线程:

Significance of 'pagerror.gif'?

(因为我是新用户,我无法发布更多链接)

干杯!

培尔

答案 1 :(得分:1)

当您自己使用网站时,是否可以将错误显示在日志中?如果是这样,HttpWatch之类的加载项可能会帮助您查看这些.gif请求。如果您能够更好地了解它们何时发生,您可能能够弄清楚发生了什么。

答案 2 :(得分:1)

Pagerror.gif和refresh.gif是IE浏览器/ IIS服务器的默认图像。通常,当浏览器无法检索内容时会显示这些图像。

如果您在日志中看到这些错误,请查看iis日志以获取更多信息。

例如,

IIS日志:寻找这个领域,

CS(用户代理)

兼容; +的 MSIE 6.0 + +视窗

这里有几点需要注意,

1)IE 6.0显然会自行提出这些请求。我不确定是否有任何其他IE 6+浏览器会显示类似的行为。

2)所有这一切都会生成一个“伪造”事件日志条目,因为当您请求不存在的GIF并且该请求通过MVC管道时,可能会发生空引用异常。

3)从技术上讲,这可以忽略不计。

4)我们可以选择通过路由检查是否可以阻止“.gif”文件被MVC管道处理

我建议的是优雅地处理它。

答案 3 :(得分:0)

可能很难确定这一点,但我的想法是:检查javascript。如果图像名称是在某处动态生成的,然后请求,则简单的“查找和替换”可能会错过参考。