2009-08-04 3 views
2

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

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

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

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

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

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

+0

Я предполагаю, что ASP должен иметь возможность обрабатывать действие HTTP SOAP (по умолчанию он позволяет PUT, GET, HEAD).То есть, если я правильно понимаю ваш вопрос. – shahkalpesh

+0

Вы говорите о создании веб-службы SOAP в ASP или просто вызове существующей службы из ASP-клиента? – Kev

+1

Если я правильно понимаю, OP пытается сделать SOAP-запрос, который отправляет xml на страницу ASP, и его нужно захватить. Извините, если я не понял этот вопрос. – shahkalpesh

ответ

1

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

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

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

+0

Thorarin, Я очень ценю информацию! URL вы при условии, что позволило мне успешно получить запрос SOAP, используя приведенный ниже код ... Set objReq = Server.CreateObject ("Microsoft.XMLDOM") objReq.Load Запрос Response.Write objReq.text Это будет Заставь меня начать! Я согласен с тем, что мне нужно изучить .NET, но на данный момент у меня уже есть подпрограммы для синтаксического анализа XML-кода, которые позволят мне построить это очень быстро. Я не могу выразить, насколько я благодарен. Спасибо! – user138777

+0

Итак, у вашего сервиса не будет WSDL? –

+0

Насколько я могу понять, это не понадобится. Это будет использоваться как частная веб-служба. У нас есть система инвентаризации на базе Windows, способная периодически экспортировать данные в веб-службу. Он отправляет запрос SOAP с блоком из 100 предметов инвентаря и ожидает ответа от SOAP. Я уже работаю над этим, и я почти готов. Я не мог научиться тому, как это сделать в .NET. Это даст мне время узнать, как это сделать в .Net. – user138777

0

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

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

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

+0

Согласовано, WSDL едва читается человеком, не говоря уже о возможности записи: P – Thorarin

+0

Опять же, это только если вы хотите * фактический * SOAP .Net веб-сервис, который может быть обнаружен клиентами SOAP. Веб-службам не требуется WSDL, термин Web-сервис в W3C очень свободен - * «программная система, предназначенная для поддержки взаимодействия между машинами и машинами в сети» *. Сделано это много раз, используя всевозможные различные методы, прежде чем .Net даже подумал. – Lankymart

-1

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

+1

ASMX практически мертв, и для его целей служба WCF столь же тривиальна, как и тривиальная служба ASMX. –

+0

Я бы сказал, что гибкость WCF делает его более сложным, чем ASMX. Вы могли бы чувствовать себя комфортно с раздутыми конфигурационными файлами как парень Connected Systems, но, не будучи привыкшими к ним, они могут добавить много путаницы. Тем не менее я согласен, что WCF, вероятно, лучший путь для этого парня. – t3rse

+0

Почему «раздувание» имеет значение, если вам никогда не придется смотреть на него? –

-2

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

Моя рекомендация ASP с C#. Легкий peasy, лимон squeezy.

+2

-1: Ваш ответ не имеет смысла, по крайней мере, не более подробно. Что вы имеете в виду, «отказывает в подключении к таким клиентам, как IE». Как IE является «ASP-построенным клиентом»? Что заставляет вас думать, что проблема с «mozilla» в заголовке «клиент», и что такое «клиентский» заголовок? Устраните проблемы, и я удалю -1. –

Смежные вопросы