【问题标题】:Does .net 4.0 still support asmx.net 4.0 是否仍然支持 asmx
【发布时间】:2011-02-03 15:05:32
【问题描述】:
  1. 我在 VS2010 中打开了我的 .net 2.0 ASMX Web 服务并迁移到了 .net4.0。如果我只是简单地运行我的 ASMX 而无需将 te 代码更改为 WCF 格式,我仍然可以在 .net 4.0 下运行旧的 asmx 服务??这会照原样工作吗?
  2. 我的 web.config 文件也有 WSE 设置,这会发生什么?
  3. WCF/net4.0 不支持附件,我是否需要更改我的 asmx webmethod 以在正文中作为数据集返回,这样可以吗?
  4. 我尝试在 .net 4.0 中使用数据集作为附件运行我现有的 asmx 服务,它有效吗?
  5. 我可以看到 asmx 文件可以添加到 .net 2010 中吗?是否仍受支持?

【问题讨论】:

  • 为什么#4 甚至是一个问题? “我尝试了一些东西,它奏效了”是一个声明。为什么#5是一个问题?如果您可以在 .Net 2010 中添加它们,是的,它们是受支持的。
  • @ Yodaj007,.net 4.0 已将 WS/WSE 替换为 WCF,这对我来说意味着没有 asmx 和附件(我可能弄错了)。但是 .net2.0 VS2005 项目一旦迁移到 VS2010 .net4.0 就可以正常工作(使用 WSE 和附件),这就是令人困惑的地方
  • 今天几乎没有人支持“附件”。相反,请使用 WCF 支持的 MTOM。

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


【解决方案1】:

是的,您也可以在 .NET 4.0 中使用 ASMX。


引用Dave Ward 来自他对他在Encosia 上名为ASMX and JSON – Common mistakes and misconceptions 的帖子的评论的回复

我认为 WCF 在某些情况下很棒 在那里你可以利用它 优势,比如当你可以使用 tcpBinding 模式。然而,WCF 的 复杂性让人难以认真 考虑简单的 AJAX 回调 更有针对性的功能, 更成熟的解决方案已经存在。

ASMX 绝不被弃用或 已过时,即使在 .NET 4 中也是如此。 实际上是我的误解之一 将在本系列中介绍。

【讨论】:

  • 这是否意味着我可以继续使用现有的 ASMX 文件,因为它将数据集作为附件传递,到目前为止,我的开发箱上没有任何错误。我错过了什么吗??
  • 先生。如果 Ward 称其为复杂,他一定没有尝试使用 .NET 4.0 创建 WCF 服务。相反,在您需要使用它之前,灵活性是隐藏的。
  • @JohnSaunders: :) 不得不同意 WCF 与 ASMX 相比相当复杂。但非常强大
  • “复杂”还是“功能丰富”?创建“Hello,WCF”服务有多容易,而使用 ASMX 做同样的事情有多容易?
  • 目前微软推荐使用 gRPC (protobuff) 而不是 ASMX 或 WCF
【解决方案2】:

ASMX Web 服务将属于 .NET 框架生命周期。 .NET 框架 4.0 和 4.5 支持 ASMX Web 服务。 Microsoft 建议不要使用 ASMX 创建新代码,如前面的答案中所指出的那样。

【讨论】:

    【解决方案3】:

    引用Microsoft

    本主题专门针对旧技术。现在应该使用Windows Communication Foundation 创建 XML Web 服务和 XML Web 服务客户端。

    自行决定这对您意味着什么。

    WCF 完全取代了 ASMX Web 服务。抱怨 WCF 复杂性的人没有注意。去创建一个新的 WCF 服务并查看模板创建的“hello world”服务中的实际代码。这只是比 ASMX 模板创建的更复杂,因为它包含 两个 操作而不仅仅是一个。

    不过,请不要误会 WSE。它已经过时了。尽快停止使用,不要使用WSE开发任何新代码。

    不要让任何人说服你什么都没有改变。它有。 ASMX 已被更好、更强大、更灵活的东西所取代。

    【讨论】:

    • 感谢您的回复,到目前为止,我得出的结论是 .net 4.0 引入了多合一的框架 WCF 取代了消息传递、远程处理、asmx WS、WSE),但为了向后兼容,它仍然支持 ASMX WS/WSE(基于到目前为止我的测试)。如果我错了,请纠正我。这一点非常重要,因为我现有的项目(.net 2.0)已迁移到 .net4.0 并且可以在配置支持运行时中使用额外的设置工作。新的开发肯定会使用 WCF,但现在如果我现有的代码在 .net 4.0 CLR(到目前为止失败)或 .net 4.0 中运行的 .net 2.0(dll 和 WS)中工作,我会很高兴
    • "抱怨 WCF 复杂性的人没有注意。"阅读上面标记为已回答的帖子。
    • @karith 使用 WCF 和“添加服务引用”通过 http 或 https 访问简单的 SOAP 服务非常容易。在 WCF 中创建这样的服务也很容易,因为默认值会为您处理配置。
    • @Karlth 我认为现在掌握一个稍微复杂的服​​务平台技术与一年后被一个过时、过时且不受支持的平台所困的权衡是显而易见的。此外,那是从 2011 年开始的。WCF 简化了创建服务和客户端的过程。
    • @Karlth 不,仅仅因为你“舒服”就继续使用 ASMX 并不是更好。如果每个人都“舒服”,为什么不只是留在 .Net 1.0 上。 WCF 并不是什么新鲜事物。它已经存在了 14 年(在发布时它已经 5 年了)。 WSE 已被 MS 标记为过时(9 年未收到更新)。 MS 声明如果您需要构建基于 SOAP 的服务并且您使用的是 .Net 3.0 或更高版本,请不要使用 ASMX,使用 WCF。您的 ASMX 服务平台将落后,暴露安全风险,无法支持 Web 服务技术环境的变化。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-10-14
    • 2010-09-05
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多