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");
            }
Foi útil?

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>
Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top