Olá Pessoal,
Nesse ultimo mês tive que fazer alguns workarounds para conseguir finalizar um trabalho de integração com o Salesforce, pois bem, aqui vão algumas dicas.
Para capturar os pacotes enviados para os webservices com os clientes C# e Java:
Utilizar o Wireshark para captura dos pacotes, porém caso seja https o soap estará criptografado, o que não irá adiantar de muita coisa, então simplesmente mude o caminho de destino https:// para http://, isso vai fazer com que o servidor recuse o seu pacote, mas já ajuda pra verificar se o envelope soap está enviando os dados corretos.
Verificando os pacotes descobri que realmente tinha coisa errada no C#, devido a propriedade no elemento que não estava sendo enviado no WSDL estar com minOccurs="0" o C# simplesmente não enviava os elementos boleanos.
Descoberto isso foi fácil, bastou remover esse atributo do wsdl que a comunicação com o servidor foi realizada com sucesso.
Outra forma de capturar os pacotes, mas nesse caso somente no cliente C#, é habilitar o trace no web.config
<system.diagnostics>
<trace autoflush="true"/>
<sources>
<source name="System.Net" >
<listeners>
<add name="TraceFile"/>
</listeners>
</source>
<source name="System.Net.Sockets" >
<listeners>
<add name="TraceFile"/>
</listeners>
</source>
</sources>
<sharedListeners>
<add name="TraceFile" type="System.Diagnostics.TextWriterTraceListener" initializeData="trace.log"/>
</sharedListeners>
<switches>
<add name="System.Net" value="Verbose"/>
<add name="System.Net.Sockets" value="Verbose"/>
</switches>
</system.diagnostics>
Nenhum comentário:
Postar um comentário