Как настроить веб-сайт для получения XML через HTTP? - PullRequest
0 голосов
/ 27 декабря 2010

Вопрос новичка веб-разработчика (иначе я свободно владею C #!):

Мне нужно настроить веб-сайт (ASP.NET/C#), который может получать сообщения XML через HTTP. Я понятия не имею, с чего начать. Создать сайт? Страница интернета? Веб-сервис? WCF? Можете ли вы самостоятельно разместить его или он должен быть на IIS? Как / где вы ловите почтовое событие?

Ответы [ 4 ]

2 голосов
/ 27 декабря 2010

Вы можете использовать несколько подходов.WCF REST, наверное, самый лучший.Вы можете найти хорошее введение в него в Руководстве MSDN по проектированию и созданию веб-сервисов RESTful с WCF 3.5 .Обратите внимание, что в версии 4.0 WCF (в настоящее время последней) есть некоторые улучшения.Для получения дополнительной информации ищите «Улучшенная поддержка REST» в этой статье MSDN .

. Здесь приведены ответы на ваши индивидуальные вопросы:

  1. "Создать вебsite? Веб-страница? Веб-сервис? WCF? "Есть несколько подходов, которые вы можете использовать.Создание веб-сайта или страницы ASPX на существующем сайте ASP .Net или даже обработчик HTTP - все это допустимые параметры.Если вы собираетесь пойти по этому пути, вам придется самостоятельно выполнять большую часть внутренней работы сервиса.Например, вам придется самостоятельно обрабатывать сериализацию / десериализацию данных с помощью классов DataContractSerializer или XmlSerializer.
    Однако, как уже упоминалось выше, WCF REST, вероятно, будет лучшим вариантом, поскольку он специально создан для ситуаций, подобных описанной вами.,

  2. "Можете ли вы разместить его самостоятельно или он должен быть в IIS?"Для веб-сайтов ASP .Net или обработчиков HTTP вам потребуется IIS.Для WCF REST вы можете самостоятельно размещаться или развертываться в IIS.

  3. "Как / где вы ловите почтовое событие?"Для страницы ASP .Net вы можете использовать событие Page_Load для обработки запроса.Вы должны получить доступ к элементу Request текущей страницы, чтобы проверить HTTP-метод запроса и все другие элементы, связанные с ним.Вы можете найти всех членов класса Request в MSDN здесь .Для WCF REST вам не нужно беспокоиться о реализации обработчика POST, поскольку он будет автоматически реализован для вас WCF.

В качестве заключительного замечания, не имеющего прямого отношения к вашему вопросу, если вы собираетесь разрабатывать какие-либо службы поверх HTTP, вы можете рассмотреть возможность использования Fiddler , который является незаменимым инструментом для такого рода услуг.

Обновление
Просто краткое примечание по архитектуре, касающееся выбора вашего подхода в зависимости от сложности вашего обслуживания.Как я подробно описал, отвечая на на этот вопрос, если у вас уже есть веб-сайт, к которому вы хотите добавить очень простую функциональность API (simple == всего несколько методов), вам, вероятно, следует сделать это с помощью ASP.Сетевые страницы или HTTP-обработчики.WCF намного мощнее и лучше подходит для более сложных сервисов, но может поначалу немного запугать, если у вас мало опыта с ним.

2 голосов
/ 27 декабря 2010

Очень простой вариант - создать простое веб-приложение с файлом универсального обработчика (.ashx).Они были разработаны для приема запросов на получение / публикацию и полностью упрощают жизненный цикл страницы.

Они имеют 1 метод ввода и их очень легко расширить для обработки требуемой обработки.

Я бы пошел по этому пути, прежде чем связываться со службами WCF или ASMX, поскольку полезная нагрузка может быть буквально любой, без необходимости изменять привязки.

1 голос
/ 27 декабря 2010

Это можно сделать либо с помощью WCF, либо с помощью веб-службы asmx.Возможно, проще всего использовать ajax и службу WCF, размещенную на IIS.

Вот простой пример использования объекта XmlHttp: http://blogs.msdn.com/b/alikl/archive/2008/02/18/how-to-consume-wcf-using-ajax-without-asp-net.aspx

Вот пример с JQuery: http://www.west -wind.com / weblog / posts / 324917.aspx

И наоборот, вы можете использовать шаблон службы WCF с поддержкой AJAX и диспетчер сценариев ASP.NET, но я не достиг такого успеха.

0 голосов
/ 28 декабря 2010

Спасибо всем за ответы!

В конечном итоге я решил использовать синхронный обработчик HTTP, как описано здесь .

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...