Попытка перехватить SOAP-запрос в Classic ASP - PullRequest
2 голосов
/ 04 августа 2009

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

У меня есть стороннее приложение, которое будет экспортировать данные в веб-сервис, если я его разработаю. Мне любопытно видеть, что я могу построить его в ASP, а не изучать .NET.

Моя проблема в том, что я не понял, как получить запрос, который он делает.

Ни методы сбора Request.Querystring или Request.Form, ни Request.ServerVariables не раскрывают ничего. Я использовал CharlesProxy, чтобы посмотреть, как выглядит отправляемый им запрос XML / SOAP, но я просто не понял, как его перехватить в ASP.

Я заметил, что передается запрос ServerVariables HTTP_SOAPACTION, который показывает вызываемую операцию, но я просто не могу понять, как извлечь передаваемую строку XML.

Любая помощь будет принята с благодарностью.

Ответы [ 4 ]

1 голос
/ 04 августа 2009

Такая отвага ... Я бы, наверное, побежал к двери, если бы мне пришлось писать что-то большее, чем тривиальные веб-сервисы.

... в любом случае, вы прочитали эту статью ? Кажется, он использует ASP для серверной части.

Я бы серьезно подумал о приобретении некоторых базовых навыков ASP.NET (или просто .NET WCF). Используйте VB.NET, если вы чувствуете себя как дома. Если не для себя, подумайте о здравомыслии вашего преемника :) Скачайте Visual Web Developer 2008 Express и просто попробуйте.

0 голосов
/ 05 января 2010

Однако WCF имеет некоторые ограничения, о которых вы должны знать - например, он отказывается от подключений к клиентам, таким как IE и другим клиентам, построенным на ASP (поскольку они используют строку «mozilla» в заголовке клиента), - и настраивает клиент WCF. соединение с сервером правильно, как операция на мозге с завязанными глазами в F-14 на Mach3 с горящими волосами. Не так просто.

Моя рекомендация - ASP с C #. Легкий горох, лимонный отжим.

0 голосов
/ 04 августа 2009

Если вы считаете себя «продвинутым», вам понадобится несколько дней, чтобы изучить VB.NET и внедрить его в качестве простого веб-сервиса ASMX. Если вы хотите больше боли, но безграничного разнообразия, создайте стойкость кишечника для WCF и сделайте службу WCF. Если вы достаточно долго играете в игру, вы поймете, что создание чего-то более устойчивого в целом менее болезненно, даже если начинать очень сложно.

0 голосов
/ 04 августа 2009

Если им нужен настоящий веб-сервис SOAP, вам придется вручную создать настоящий WSDL. Это потребует достаточно усилий, чтобы вам было лучше написать небольшой веб-сервис в .NET.

Ты тоже знаешь VB6? Если это так, то я бы посоветовал вам написать как можно больше внутренностей веб-службы в качестве компонента COM в VB6. Сделайте так, чтобы компонент принял MSXML2.DomDocument или что-то еще, и выполнил все сложные задачи, используя технологию, с которой вы знакомы.

Часть веб-службы .NET будет тривиальной и будет лишь модификацией стандартного сервиса "привет, мир", который вы получаете при создании проекта службы WCF. Все, что вам нужно сделать, это сослаться на созданный и зарегистрированный COM-компонент, выполнить тривиальное преобразование из типа XML .NET в тип MSXML и вызвать свой компонент, и все будет готово.

...