Как контролировать формат вывода в веб-сервисе ASP.Net

StackOverflow https://stackoverflow.com/questions/1204582

  •  05-07-2019
  •  | 
  •  

Вопрос

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

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

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

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

Это было полезно?

Решение

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

Другие советы

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

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

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

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

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

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top