ResponsesoapContext.Current é nulo
-
27-09-2019 - |
Pergunta
Eu tenho executado um código de serviço da web em minha própria máquina junto com o código do cliente. Ele estava funcionando bem e conseguiu receber os anexos de dez centavos enviados do serviço da web para o cliente.
O serviço da Web usa anexos WSE 2.0 e DIME. O código do cliente fica na mesma máquina que chama o serviço da web.
No entanto, quando vou implantar isso em um servidor Windows 2003 R2, na linha ResponsesoapContext.current.add (dimeattachment), ele falhou devido ao objeto ResponseSoapContext.Current NULL.
O código do cliente conseguiu ligar para o serviço da Web, como posso ver nos logs que está tentando fazer algo.
Haveria um firewall interrompendo o código do cliente recebendo o anexo do DIME do serviço da web? Ou há um cenário que estou perdendo? Aqui está o código:
DimeAttachment dimeAttach = new DimeAttachment(
"application/octet-stream", TypeFormat.MediaType,
streamObj);
if (ResponseSoapContext.Current != null)
{
ResponseSoapContext.Current.Attachments.Add(dimeAttach);
}
else
{
throw new Exception("The ResponseSoapContext.Current object is null");
}
Solução
Acontece que o servidor teve o Microsoft WSE 2.0 SP2 instalado, onde o cliente estava usando o Microsoft WSE 2.0 SP3.
Instalou o Microsoft WSE 2.0 SP3 no servidor e atualizou as referências e tudo funciona agora.
Outras dicas
Eu tive esse problema e resolvi -o no arquivo web.config do servidor, adicionando algumas configurações sobre o WSE. Meu web.config (configurações despojadas não relacionadas ao WSE):
<?xml version="1.0"?>
<configuration>
<configSections>
<section name="microsoft.web.services2" type="Microsoft.Web.Services2.Configuration.WebServicesConfiguration, Microsoft.Web.Services2, Version=2.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35" />
</configSections>
<system.web>
<webServices>
<soapExtensionTypes>
<add type="Microsoft.Web.Services2.WebServicesExtension, Microsoft.Web.Services2, Version=2.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35" priority="1" group="0" />
</soapExtensionTypes>
</webServices>
</system.web>
<microsoft.web.services2>
<messaging>
<maxRequestLength>1024000</maxRequestLength>
</messaging>
<diagnostics />
</microsoft.web.services2>
</configuration>