C# - 使用aspx页面的Web服务

时间:2011-03-01 14:41:04

标签: c# wcf web-services iis serialization

我们需要使用特定的库进行序列化,使用方法如下:

var obj = Serializer.Deserialize(myStream); //Read
Serializer.Serialize(obj, myOtherStream); //Write

我们需要通过网络服务公开这个,我已经这样做了:

  • 文件 - >新项目 - > ASP .Net WebForms网站
  • 在Page.Load中,我们使用Request和Response成员进行序列化
  • 修改响应中的ContentType
  • 然后我们调用Response.End()
  • 我们还必须在aspx页面中添加Async =“true”

所有这一切似乎都很好。

有没有更好的方法来解决这个问题?我们希望我们的服务在IIS中运行,但我们不知道是否有任何开销使这个aspx页面。

使用WCF连接它有什么好处吗?

1 个答案:

答案 0 :(得分:6)

好吧,如果您的网页没有实际的网络表单组件,则可以使用handler page。这将减少一些开销。

<%@ WebHandler Language="C#" Class="Handler" %>

using System;
using System.Web;

public class Handler : IHttpHandler {

    public void ProcessRequest (HttpContext context) {

        context.Response.ContentType = "text/xml";
        Serializer.Serialize(obj, context.Response.Stream); //Write

    }

    public bool IsReusable {
        get {
            return false;
        }
    }
}