【问题标题】:How to control output format in ASP.Net web service如何在 ASP.Net Web 服务中控制输出格式
【发布时间】:2009-07-30 05:16:02
【问题描述】:

我们正在从用 ColdFusion 编写的旧版应用程序切换到 ASP.Net Web 表单应用程序。一项要求是迁移旧版 Web 服务。地址可以更改,但输入和响应的格式必须相同。我对 Web 服务比较陌生,但我知道 .Net Web 服务(可能还有其他)有 SOAP 和 JSON 输出格式。但这些都不可行。

我需要完全控制给出的响应。如果我使用 .ASPX 页面执行此操作,我只需将遗留的 repose 写入一个字符串,清除 Response,然后将该字符串添加到 Response 并调用 Response.End。

.ASMX 有类似的东西吗?

是否有更智能的方法来实现它并且仍然能够与 ASP.Net Web 应用程序的其他代码库集成?

【问题讨论】:

    标签: .net web-services asmx


    【解决方案1】:

    如果您只需要完整的响应控制,那么请跳过 ASPX 页面循环戏剧并考虑改用 .ASHX。它相当原始,可能是您需要的。

    【讨论】:

    • 这正是我需要知道的,如何完全控制输出。谢谢
    【解决方案2】:

    您可以使用 WCF 来实现普通的旧 XML (POX) 而不是 SOAP。

    WebHttpBinding 是为此使用的绑定。如果您的“完全控制”否定了将现有服务逆向工程为显式 WCF 合同的可能性,那么您可以使用Stream to get complete control of the output

    【讨论】:

      【解决方案3】:

      取决于您需要的格式。
      ASMX 和 WCF 将生成真正的 SOAP 响应。
      如果我理解正确,您说“SOAP 不可行”。如果您需要一种奇怪的格式,您当然可以按照您使用 ASPX 页面描述的方式生成它。不过,编程模型不会那么好。

      【讨论】:

        【解决方案4】:

        您使用的是什么版本的 Visual Studio?如果您有 Visual Studio 2008 (SP1),则不应创建 ASMX Web 服务。 Microsoft 现在认为该技术是“遗留技术”,并且不打算修复其中的任何错误。

        相反,您应该创建一个 WCF 服务。您可以完全控制输出格式。

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 2013-05-22
          • 2011-12-06
          • 2012-11-24
          • 2011-09-06
          • 2023-03-28
          • 1970-01-01
          • 2013-04-26
          相关资源
          最近更新 更多