Como controlar o formato de saída no serviço da web asp.net
-
05-07-2019 - |
Pergunta
Estamos mudando de um aplicativo Legacy escrito em ColdFusion para um aplicativo ASP.NET Web Forms. Um requisito é mover -se sobre o serviço da web herdado. O endereço pode mudar, mas o formato da entrada e as respostas deve ser o mesmo. Sou relativamente novo nos serviços da Web, mas sei que existem formatos de saída SOAP e JSON para um serviço .NET Web (talvez outros). Mas nenhum deles é viável.
Eu preciso ter controle completo sobre a resposta dada. Se eu estivesse fazendo isso com uma página .aspx, apenas escreveria o legado em uma string, limpe a resposta e adicionaria essa string à resposta e resposta da resposta.
Existe algo semelhante para um .asmx?
Existe uma maneira mais inteligente de fazê -lo e ainda poder se integrar ao restante da base de código do aplicativo da Web ASP.NET?
Solução
Se você precisar apenas de controle de resposta completo, pule o drama do ciclo da página ASPX e procure usar um .ashx. É bastante cru e pode ser o que você precisa.
Outras dicas
Você pode usar o WCF para implementar xml antigo simples (varíola) em vez de sabão.
O WebHttpBinding é a ligação a ser usada para isso. Se o seu "controle completo" negar a possibilidade de engenharia reversa do serviço existente em um contrato explícito da WCF, você poderá usar um Stream para obter o controle completo da saída.
Depende do formato que você precisa.
O ASMX e o WCF gerarão respostas de sabão de boa-fé.
Se eu entendi corretamente, você disse que "sabão não é viável". Se você precisar de um formato ímpar, certamente pode gerá -lo da maneira que descreveu com uma página ASPX. O modelo de programação não será tão bom, no entanto.
Qual versão do Visual Studio você está usando? Se você possui o Visual Studio 2008 (SP1), não deve criar um serviço da Web ASMX. A Microsoft agora considera que a tecnologia é "legado" e não planeja corrigir nenhum erro.
Em vez disso, você deve criar um serviço WCF. Você pode controlar completamente o formato de saída.