WebResource.axd在哪里?

25

我正在寻找名为WebResource.axd的文件(以查看其源代码),但我找不到它。
它在哪里?

1个回答

49

.axd文件通常被实现为HTTP处理程序。它们并不是作为ASP.NET网页存在,而是作为实现IHttpHandler接口的类存在。

如果您查看根Web.config%WINDIR%\Microsoft.NET\Framework\version\Config\Web.config),您会发现以下条目:

<add path="WebResource.axd" verb="GET" type="System.Web.Handlers.AssemblyResourceLoader" validate="True" />

这篇文章说,“嘿,如果收到一个请求来获取WebResource.axd,那么就使用System.Web.Handlers命名空间中的HTTP处理程序AssemblyResourceLoader。”

这个类的代码有点冗长,所以我不能在这里发布它,但你可以使用像免费的Reflector这样的反编译器来查看这个类的源代码。你可以通过使用NetMassDownloader工具获得原始源代码(带注释)。


7
我在我的博客上发布了更多关于WebResource.axd及其目的的信息。博客链接为:http://scottonwriting.net/sowblog/archive/2010/10/28/just-where-is-webresource-axd.aspx。 - Scott Mitchell
我知道WebResource.axd和ScriptResource.axd都是HTTPHandler。它们的基本区别是什么,因为它们似乎执行相同的功能。 - David Williams
1
@David Williams:我不确定。请记住,WebResource.axd是在.NET 2.0中引入的。如果我没记错,ScriptResource.axd是为ASP.NET AJAX框架添加的,该框架最初是为2.0开发的,但在2.0发布后。我猜想,在开发ASP.NET AJAX时,微软意识到他们需要一些功能,这些功能不是WebResource.axd的一部分,因此他们创建了一个新的处理程序,以提供ASP.NET AJAX所需的功能。那是我的猜测;要得到明确的答案,您需要与微软的某个人交谈。 - Scott Mitchell

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接