asp.net framework 4.5 中的 ashx、asmx、axd + cs(handler)、webmethod(in aspx) 和 async 方法有啥区别? [关闭]

Posted

技术标签:

【中文标题】asp.net framework 4.5 中的 ashx、asmx、axd + cs(handler)、webmethod(in aspx) 和 async 方法有啥区别? [关闭]【英文标题】:What is the difference between ashx, asmx, axd + cs(handler), webmethod(in aspx) and async methods in asp.net framework 4.5? [closed]asp.net framework 4.5 中的 ashx、asmx、axd + cs(handler)、webmethod(in aspx) 和 async 方法有什么区别? [关闭] 【发布时间】:2013-01-29 15:18:30 【问题描述】:

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

【问题讨论】:

【参考方案1】:

.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 Web 服务来服务 MS 特定的 javascript)我认为您永远不会创建 axd 文件,但我可能是错的......至少我从来没有。 See here for more info.

哪个是最好的选择?

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

【讨论】:

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

以上是关于asp.net framework 4.5 中的 ashx、asmx、axd + cs(handler)、webmethod(in aspx) 和 async 方法有啥区别? [关闭]的主要内容,如果未能解决你的问题,请参考以下文章

ASP.NET 4.5 或替代框架中的 OpenIdDict?

如何在 asp.net 4.5 中使用 facebook 帐户开发登录

无法在 Mono 3 上的 xsp 上运行 asp.net 4.5 应用程序

跟我一起学习ASP.NET 4.5 MVC4.0

更新 ASP.NET Core Entity Framework 中的实体类

ASP.NET Core 和 Entity Framework Core:Linq 中的左(外)连接