ashx,asmx,axd + cs(处理程序),webmethod(在aspx中)和asp.net framework 4.5中的异步方法有什么区别?

时间:2013-02-13 22:23:15

标签: asp.net asmx ashx webmethod axd

我需要知道这些文件的技术差异。哪一个是最好的选择? 何时以及为什么要使用它? 我需要一个人的答案,而不是MSDN链接。

1 个答案:

答案 0 :(得分:14)

.ashx个文件用于处理HttpRequests和修改HttpResponses;你可以让他们做任何你想做的事情。我已经看到它们用于提供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网络服务来提供MS特定的javascript)我不认为你会创建一个axd文件,但我可能是错的...至少我从来没有。 See here for more info.

  

哪一个是最佳选择?

它们是用于解决不同问题的不同工具。何时以及为什么要使用每一个取决于你想要完成的工作。使用ashx文件可以实现对Web应用程序行为的较低级别处理。如果您想提供更标准化的服务,我建议您使用WCF和svc文件。请向我们提供有关您正在执行的任务的更多信息,以便我们帮助您选择一个。