我需要知道这些文件的技术差异。哪一个是最好的选择? 何时以及为什么要使用它? 我需要一个人的答案,而不是MSDN链接。
答案 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
文件。请向我们提供有关您正在执行的任务的更多信息,以便我们帮助您选择一个。