2

不久前,大约 2 年前,我正在研究使用 .NET 2.0 开发的 Web 门户。并且有很多 asmx 页面。

前几天,我的一位更擅长 ASP .NET 的同事说:“ASMX 又旧又丑,我们应该重写它”。所以我们做到了,据我所知,我们转移到了 ashx 处理程序。

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

或者也许是 2 年前,我太无知了,我们使用了某种旧版本的 asmx,然后我们转向了新的 asmx。

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

4

4 回答 4

3

如果您可以使用 WCF,那么是的,ASMX 服务已经过时,因为 WCF 可以用更高的性能和灵活性(多绑定)功能完全取代它们。如果您可以编写 WCF 服务,那么如果由于某种原因您将被要求创建 ASMX 服务,那么您将不会有任何问题。

从 ASMX 迁移到 ASHX 并不是明智之举,因为它们不是为了相互替换。

于 2012-10-27T13:33:22.130 回答
2

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

于 2014-09-12T13:39:32.280 回答
0

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

WCF 和 ASMX Web 服务有什么区别?

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

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

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

于 2012-10-27T13:48:51.980 回答
0

是的,asmx 对于 WCF 服务已经过时了。当您使用 < 4.0 aspx 时,您可以使用 asmx。

ashx 不会完全替代 asmx。

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

于 2016-04-15T12:05:30.393 回答