如何在ASP.Net Web服务中控制输出格式

时间:2009-07-30 05:16:03

标签: .net web-services asmx

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

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

.ASMX有类似的东西吗?

是否有更智能的方法可以与ASP.Net Web应用程序的其他代码库集成?

4 个答案:

答案 0 :(得分:1)

如果您只需要完整的响应控制,那么请跳过ASPX页面循环播放,然后查看使用.ASHX。它非常原始,可能就是你所需要的。

答案 1 :(得分:1)

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

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

答案 2 :(得分:0)

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

答案 3 :(得分:0)

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

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