Lists. asmx, GetList e "valor não pode ser nulo”

Descobri hoje que o GetList() Método em lists. asmx serviço da Web tem de ser chamado com muito cuidado ou é propenso ao lançar uma misteriosa exceção "Valor não pode ser nulo" (e que está assumindo que você pode passar a mensagem de erro genérico ainda pior, "Exceção do tipo ' Microsoft.SharePoint.SoapServer.SoapServerException’ foi lançada.")  Especificamente, Achei que você não pode fornecer qualquer tipo de prefixo sobre o método GetList.  O seguinte trecho de jQuery ilustra o ponto:

image

Se você fizer isso, o serviço web responde com "Valor não pode ser nulo" como por isso Fiddler-desde transcrição HTTP:

<?XML version = "1.0" Encoding = "utf-8"?>
  <sabão:Envelope
     xmlns:sabão ="
http://schemas.xmlsoap.org/soap/envelope/"    
     xmlns:xsi = "
http://www.w3.org/2001/XMLSchema-instance
     xmlns:XSD ="
http://www.w3.org/2001/XMLSchema">

  <sabão:Corpo>
    <sabão:Falhas>
      <FaultCode>sabão:Servidor</FaultCode>
      <FaultString>
        Exceção do tipo ' Microsoft.SharePoint.SoapServer.SoapServerException’ foi lançada.
      </FaultString>
      <Detalhes>
        <ErrorString xmlns ="
http://schemas.Microsoft.com/SharePoint/SOAP/">
Valor não pode ser nulo.
        </ErrorString>
      </Detalhes>
    </sabão:Falhas>
  </sabão:Corpo>
</sabão:Envelope>

É claro, Você provavelmente não iria adicionar o prefixo "s0" em seu próprio país, mas algumas ferramentas são propensas a fazê-lo (como o Eclipse).

Isto é tanto mais confuso / frustrante porque outros métodos toleram prefixos.  Por exemplo, o GetListCollection Método não se importa se for prefixado, mesmo com prefixos de disparates como "xyzzy":

image

Este "valor não pode ser nulo" parece bastante comum com lists. asmx tão esperançosamente isto ajudará alguém fora no futuro.

</fim>

Subscreva ao meu blog.

Siga-me no Twitter em http://www.twitter.com/pagalvin

Um pensamento em "Lists. asmx, GetList e "valor não pode ser nulo”

Deixe uma resposta para PVA Cancelar resposta

seu endereço de e-mail não será publicado. Campos obrigatórios são marcados *