C # - веб-сервис с ASPX-страницей - PullRequest
3 голосов
/ 01 марта 2011

Мы должны использовать определенную библиотеку для сериализации, которая используется следующим образом:

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

Нам нужно выставить это через веб-сервис, и я получил эту работу так:

  • Файл -> Новый проект -> Сайт ASP .Net WebForms
  • В Page.Load мы используем члены Request и Response для выполнения сериализации
  • Изменить ContentType в ответе
  • Затем мы вызываем Response.End ()
  • Нам также пришлось поместить Async = "true" на страницу aspx

И все это, кажется, работает нормально.

Есть ли лучший способ справиться с этим? Мы хотим, чтобы наш сервис работал в IIS, но мы не знали, были ли какие-либо издержки при создании страницы aspx.

Есть ли какая-то польза от подключения к WCF?

1 Ответ

6 голосов
/ 01 марта 2011

Что ж, если у вас есть страница, на которой нет реальных компонентов веб-формы, вы можете просто использовать обработчик 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;
        }
    }
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...