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

jon*_*ers 3 c# iis wcf serialization web-services

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

var obj = Serializer.Deserialize(myStream); //Read
Serializer.Serialize(obj, myOtherStream); //Write
Run Code Online (Sandbox Code Playgroud)

我们需要通过Web服务公开它,我已经得到了这样的工作:

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

所有这一切似乎都很好.

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

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

RQD*_*QDQ 6

好吧,如果你有一个没有实际Web表单组件的页面,你可以使用一个处理程序页面.这将减少一些开销.

<%@ 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;
        }
    }
}
Run Code Online (Sandbox Code Playgroud)