asp.net - asp.net Framework 4.5 中的 ashx、asmx、axd + cs(handler)、webmethod(in aspx) 和 async 方法有什么区别?

标签 asp.net asmx ashx webmethod axd

我需要知道这些文件的技术差异。哪一个是最好的选择? 我们何时以及为什么应该使用它? 我需要一个人工答案,而不是 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/

相关文章:

c# - 如何使用显示图像的处理程序检查图像控件中是否存在图像

c# - 在 ASP.NET 中子类化 DropDownList

c# - 在asp.net中显示数据库中的Null

c# - PrincipalContext 未连接

asp.net - 隐藏 asp.net WebMethod 返回的异常的堆栈跟踪?

c# - 在 ASP.NET 中捕获由通用处理程序 (ashx) 文件引起的异常

asp.net - ASSX 处理程序返回 500 内部服务器错误

asp.net - 在 PDF iText ASP C# 中为我的所有页面设置修复背景图像

c# - 使用 LINQ 创建 SelectListItem 的集合

asp.net - 从 MVC 4 项目授权 ASMX .NET Web 服务的正确方法