我需要了解这些文件的技术区别。哪一个是最佳选择?我们应该在什么时候和为什么使用它们?我需要人为的回答,而不是 MSDN 的链接。
.ashx
文件用于处理 HttpRequests 和修改 HttpResponses;您可以让它们做任何您想要的事情。我见过它们用于提供 PDF 和执行服务器端处理然后重定向等事情。 点击此处获取更多信息。
.svc
文件(这个在你的问题中没有提到)是 微软新的 Windows Communication Foundation 的一部分,用于 面向服务架构 的开发。WCF 支持 SOAP、REST 和许多其他很酷的功能。
.asmx
文件是一种较旧的托管SOAP服务的方式。它们通常与asmx.cs
文件(或.vb)一起使用,其中包含服务背后的实际方法。请参阅此处以获取更多信息。 这是一项传统技术,我建议在新开发中改用WCF。
[WebMethod]
属性用于表示由 asmx
托管的 SOAP 服务中公开的方法。请参阅此处以获取更多信息。
.axd
扩展名用于生成的 Web 服务,用于许多不同的事情。(例如,MVC3 使用 axd
Web 服务来提供 MS 特定的 JavaScript)我认为你永远不会创建一个 axd
文件,但我可能错了...至少我从未这样做过。请参阅此处以获取更多信息。
ashx
文件来处理Web应用程序行为的较低级别。如果您想提供更标准化的服务,我建议使用WCF和svc
文件。请提供有关您正在执行的任务的更多信息,以便我们帮助您选择一个。