Использование SOAP в классическом ASP

Уточнение: речь идет не о вызовах страниц агентом пользователя, а о классическом вызове ASP в ASP.NET!

У меня есть приложения, которые находятся на полпути перехода от классического ASP к ASP.NET. Существует полмиллиона строк кода, поэтому полная переписать все сразу было просто невероятно или откровенно благоразумно, учитывая, что подавляющее большинство классических страниц ASP работают нормально. Мы переводим страницы и функции по мере их поступления на доработку в любом случае, а не только потому, что это «круто».

Теперь, когда преобразована примерно половина страниц, мы переместили некоторые ключевые функции в ASP.NET. Вместо того, чтобы сохранять унаследованные версии этой функциональности (что означает поддержку двух мест вместо одного), я перехожу к использованию SOAP для раскрытия этой функциональности.

Ну не совсем. Вместо этого мы использовали то, что я раньше называл «SOAP для бедняков», хотя сегодня модно называть его REST. Я использовал ServerXMLHTTP для связи с целевой страницей, собирал XML-файл и отправлял его на сторону ASP.NET. Для этого я собрал некоторый XML и использовал XPATH, чтобы разбить его на переменные.

Все это работает на удивление хорошо. Тем не менее, я размышлял о встроенных функциях ASP.NET SOAP, которые, казалось бы, устраняют необходимость настраивать целевые страницы записи для моих межплатформенных вызовов ... но когда я смотрю на использование SOAP из классического ASP, большинство предлагает использовать, казалось бы, устаревший Soap Toolkit.

Вопрос в том; Есть ли у кого-нибудь из вас опыт работы с такого рода настройками, и если да, то есть ли лучшие способы сделать это, чем настраиваемые страницы REST или Soap Toolkit? Я думаю, что возможность более быстрого раскрытия функциональности ASP.NET поможет с миграцией, но я не хочу излишне увязнуть в устаревших технологиях, таких как Soap Toolkit.


person Godeke    schedule 30.10.2008    source источник


Ответы (3)


Проведя еще немного поисков, я обнаружил

Вызов веб-служб REST с классической страницы asp

который, в свою очередь, связан с

http://www.aspfree.com/c/a/ASP/Consuming-a-WSDL-Webservice-from-ASP/

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

person Godeke    schedule 30.10.2008

Я использую Prototype с множеством классических страниц ASP для вызовов AJAX. Я предпочитаю работать с JSON, чем с XML для своего уровня данных. Ajax + JSON намного легче, быстрее и проще в использовании, чем SOAP + XML.

person Diodeus - James MacFarlane    schedule 30.10.2008
comment
Речь идет не о протоколе SOAP на стороне клиента, а о том, что классический ASP вызывает ASP.NET SOAP на том же компьютере. - person Godeke; 30.10.2008

Я смог сделать это с помощью следующего кода, очевидно, вам нужно будет что-то изменить, но, надеюсь, это поможет вам начать:

Set xmlhttp = CreateObject("MSXML2.ServerXMLHTTP")                          
xmlhttp.open "POST", soapServer, False
xmlhttp.setRequestHeader "Content-Type", "text/xml; charset=utf-8"
xmlhttp.setRequestHeader "SOAPAction", char(34) & "WebPlatform.WebServices/ISessionTokenServiceV1/CreateSessionToken" & char(34)

xmlhttp.send soapMessage

soapMEssage будет отправляемым вами запросом на мыло. soapServer - это URL-адрес веб-службы, например: http://localhost:8000/WebServices/SampleService.svc/BASIC

person wwilkins    schedule 17.11.2009