ashx、asmx、axd+cs(handler)、aspx中的webmethod和asp.net框架4.5中的异步方法有什么区别?

7

我需要了解这些文件的技术区别。哪一个是最佳选择?我们应该在什么时候和为什么使用它们?我需要人为的回答,而不是 MSDN 的链接。

1个回答

17

.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文件。请提供有关您正在执行的任务的更多信息,以便我们帮助您选择一个。

请注意,.asmx不再用于“托管SOAP服务”。它们是一种遗留技术,不应该用于新的开发。它们已被.svc文件和WCF所取代。 - John Saunders
2
未来是Web API! - Juan David Nicholls Cardona

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