2009-07-30 2 views
0

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

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

Есть ли что-то подобное для .ASMX?

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

ответ

1

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

+0

Это то, что мне нужно знать, как иметь полный контроль над выходом. благодаря – Jared

0

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

0

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

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

1

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

WebHttpBinding является обязательным для использования для этого. Если ваш «полный контроль» отрицает возможность обратного проектирования существующей службы в явный контракт WCF, вы можете использовать Stream to get complete control of the output.

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