我需要知道这些文件的技术差异。哪一个是最好的选择? 我们何时以及为什么应该使用它? 我需要一个人工答案,而不是 MSDN 链接。
最佳答案
.ashx
文件用于处理 HttpRequest 和修改 HttpResponse;你几乎可以让他们做任何你想做的事。我见过它们用于诸如提供 PDF 和进行服务器端处理然后重定向之类的事情。 See here for more info.
.svc
文件(您的问题中未提及)是 MS's new Windows Communication Foundation 的一部分,用于 SOA 开发。 WCF 支持 SOAP、REST 和许多其他很酷的东西。
.asmx
文件是托管 SOAP 服务的较旧方法。它们通常附带 asmx.cs
文件(或 .vb),其中包含服务背后的实际方法。 See here for more info. 这是一项遗留技术,I would recommend using WCF instead in new development 。
[WebMethod]
属性用于表示由 asmx
托管的 SOAP 服务中显示的方法。 See here for more info.
.axd
扩展名由用于许多不同用途的生成的 Web 服务使用。 (例如,MVC3 使用 axd
Web 服务来服务 MS 特定的 javascript)我认为您不会创建 axd
文件,但我可能是错的......至少我从来没有。 See here for more info.
Which one is the best option?
它们是用于解决不同问题的不同工具。何时以及为何使用每一项取决于您想要完成的工作。可以使用 ashx
文件实现对 Web 应用程序行为的较低级别处理。如果你想提供更标准化的服务,我建议使用WCF和svc
文件。请向我们提供有关您正在执行的任务的更多信息,以便我们帮助您选择一项。
关于asp.net - asp.net Framework 4.5 中的 ashx、asmx、axd + cs(handler)、webmethod(in aspx) 和 async 方法有什么区别?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14864373/