Как контролировать формат вывода в веб-сервисе ASP.Net - PullRequest
0 голосов
/ 30 июля 2009

Мы переходим от устаревшего приложения, написанного на ColdFusion, к приложению ASP.Net Web Forms. Одно из требований - переместить устаревший веб-сервис. Адрес может измениться, но формат ввода и ответов должны быть одинаковыми. Я относительно новичок в веб-службах, но я знаю, что существуют форматы вывода SOAP и JSON для веб-службы .Net (возможно, другие). Но ни один из них не выполним.

Мне нужно полностью контролировать ответ. Если бы я делал это со страницей .ASPX, я бы просто записал устаревшее представление в строку, очистил Response, а затем добавил эту строку в Response и вызвал Response.End.

Есть ли что-то похожее на .ASMX?

Есть ли более разумный способ сделать это и при этом иметь возможность интеграции с остальной частью кода базы веб-приложений ASP.Net?

Ответы [ 4 ]

1 голос
/ 30 июля 2009

Вы можете использовать WCF для реализации простого старого XML (POX) вместо SOAP.

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

1 голос
/ 30 июля 2009

Если вам просто нужен полный контроль ответа, пропустите драму цикла ASPX-страниц и изучите использование .ASHX. Это довольно сырой и может быть то, что вам нужно.

0 голосов
/ 30 июля 2009

Какую версию Visual Studio вы используете? Если у вас Visual Studio 2008 (SP1), вам не следует создавать веб-службу ASMX. В настоящее время Microsoft считает эту технологию «устаревшей» и не планирует исправлять в ней ошибки.

Вместо этого вам следует создать службу WCF. Вы можете полностью контролировать формат вывода.

0 голосов
/ 30 июля 2009

Зависит от нужного вам формата.
ASMX и WCF будут генерировать истинные SOAP-ответы.
Если я правильно понимаю, Вы сказали: «SOAP не работает». Если вам нужен нечетный формат, вы можете сгенерировать его так, как вы описали на странице ASPX. Модель программирования не будет такой хорошей, хотя.

...