ASMX技术是否完全过时

时间:2012-10-27 13:24:35

标签: asp.net web-services asmx asp.net-4.0 asp.net-3.5

前一段时间,大约2年前,我正在研究用.NET 2.0开发的门户网站。并有很多asmx页面。

前几天,我对ASP .NET更擅长的一位同事说:“ASMX陈旧而丑陋,我们应该重写它”。所以我们做到了,据我记得我们搬到了ashx处理程序。

但是现在,当我准备通过70-515时,我遇到了一些仍然建议学习asmx服务的材料(关于AJAX)。那么这种方法在新的ASP .NET 3.5 / 4.0 Web项目中仍然有效吗?如果是这样,那么当&我应该在哪里使用它?

或者也许2年前,我太无知了,我们使用了某种旧版本的asmx,我们搬到了新的asmx。

P.S。当我输入标签“asmx”时,我看到一条消息:“asmx已过时”:https://stackoverflow.com/tags/asmx/info

4 个答案:

答案 0 :(得分:3)

如果您可以使用WCF,那么ASMX服务已经过时,因为WCF可以完全替换它们,具有更高的性能和灵活性(多重绑定)功能。如果您可以编写WCF服务,那么如果您因某些原因被要求创建ASMX服务,那么您就没有问题。

从ASMX转移到ASHX不是一个聪明的举动,因为它们不是为了互相替换。

答案 1 :(得分:1)

奇怪的是,我们从ASMX转移到了WCF,然后又回到了ASMX。 WCF有很多缺点,最重要的是跨平台兼容性问题。如果每个人都在使用.NET,那么这不是问题,但并非所有其他框架都支持完整的堆栈,而且他们经常无法做到WCF生成的内容。我们还发现处理安全性和测试是WCF的一个难题。如果您的Web服务标记为安全,则必须在WCF中保证安全,即使在您的测试环境中也是如此,这意味着为每个开发人员获取实际的SSL证书。确实很痛苦。

答案 2 :(得分:0)

ASMX和WCF是在.NET中构建Web服务的技术。 WCF是在.NET 3.0中引入的。它的目标是为所有通信技术提供标准抽象,并且是在.NET中实现Web服务的推荐方法。

What are the differences between WCF and ASMX web services?

ASHX是一种在.NET中编写HTTPHandlers的方法。有关什么是HTTPHandler

的更多信息

http://forums.asp.net/t/1166701.aspx/1

.NET支持ASMX服务。但是,建议迁移到WCF。此外,您应该在WCF中编写所有新服务。

答案 3 :(得分:0)

是的,asmx对于WCF服务是绝对的。你在使用<时可以使用asmx 4.0 aspx。

ashx不会完全取代asmx。

如果您有编码格式问题/标准/大量代码,那么您可以使用MVC Web API 2(4.0本身)。但与WCF相比,您必须确保收件人的响应预期 (“WCF是Web服务(ASMX)的演变,支持各种协议,如TCP,HTTP,HTTPS,命名管道,MSMQ。但Web api仅用于HTTP”)。

相关问题