Pergunta

Eu tenho um problema para entender como ListData.svc pode ser depurado usando IE8 e IE9.

Eu tenho uma URL parecida com esta:hostname:8181/_vti_bin/listdata.svc/ImageBanners?$filter=endswith(Path,'TopLeft') e mostrar eq verdadeiro

Quando tento acessá-lo usando o IE8 no meu servidor autônomo do SharePoint, recebo o erro 400.

Quando solicito o mesmo URL usando o Firefox, ele funciona perfeitamente.

Além disso hostname:8181/_vti_bin/listdata.svc/ImageBanners funciona como deveria ser, mesmo no IE.Então o problema parece estar no $filter=endswith papel.

No entanto.Quando solicito o mesmo URL no IE8 usando o endereço IP do servidor ou localhost, obtenho resultados corretos mesmo com filtros complexos.

Alguém, por favor, pode esclarecer esse mistério?Por que recebo esse tipo de comportamento?

Informação adicional:

  • O SharePoint tem versões em russo e inglês instaladas.
  • O aplicativo SharePoint está usando autenticação NTLM.
  • A autenticação anônima no IIS está desabilitada.
  • O Fiddler mostra que cada recurso é solicitado duas vezes.Na primeira vez o servidor retorna 401 e depois 200 ou 400 dependendo do navegador e URL (veja detalhes acima).

    • Quando eu acesso ListData.svc usando a solicitação HTTP correta do Firefox é assim:

    Aceitar:texto/html, aplicativo/xhtml+xml, /
    Idioma de aceitação:en-EUA
    Agente de usuário:Mozilla/5.0 (compatível;MSIE 9.0;Windows NT 6.1;UAU64;Tridente/5.0)
    Aceitar codificação:gzip, desinflar
    Conexão:Mantenha vivo
    Biscoito:WSS_KeepSessionAuthenticated={b3987daa-d463-415f-8fb3-d556c27e5bbf}
    Hospedar:host local: 8181
    Autorização:NTLM TlRMTVNTU...

    • Ao usar a solicitação HTTP do IE8 parece (observe lcid=1049.talvez esse possa ser o problema?):

    Aceitar:imagem/jpeg, imagem/gif, imagem/pjpeg, aplicativo/x-ms-application, aplicativo/xaml+xml, aplicativo/x-ms-xbap, /
    Idioma de aceitação:en-EUA
    Agente de usuário:Mozilla/4.0 (compatível;MSIE 7.0;Windows NT 6.1;UAU64;Tridente/5.0;SLCC2;.NET CLR2.0.50727;.NET4.0C;.NET4.0E;.NET CLR3.5.30729;.NET CLR3.0.30729;InfoPath.3)
    Aceitar codificação:gzip, desinflar
    Conexão:Mantenha vivo
    Biscoito:lcid=1049;WSS_KeepSessionAuthenticated={b3987daa-d463-415f-8fb3-d556c27e5bbf}
    Autorização:NTLM TlRMTVNTU...
    Hospedar:nome do host: 8181

Foi útil?

Solução

Eu finalmente consegui definir.Acabou sendo o recurso do REST do SharePoint.eu precisava pegar Idioma da IU em consideração!

Por exemplo, no caso de localidade en-us, a consulta REST deve ser semelhante a esta:

?$filtro=termina com(Caminho,'Nome da pasta')

Mas em ru-ru torna-se:

?$filtro=termina com(Путь,'Nome da pasta')

Além disso, você precisa escapar das letras russas.Então, finalmente deve ficar assim:

?$filtro=termina com(%D0%9F%D1%83%D1%82%D1%8C",'Nome da pasta')

Este não é o único problema, no entanto...O JSON que recebo também está localizado.Com isso quero dizer que as propriedades têm nomes localizados diferentes.Por exemplo, JSON retornado em en-us:

{..."ModifiedById":1,"CopySource":null,"ApprovalStatus":"0","Path":"/Lists/ImageBanners/BottomRight"...}

em ru-ru:

{...."КемИзмененоId":1,"ИсточникКопии":null,"СостояниеУтверждения":"0","Путь":"/Lists/ImageBanners/BottomRight"...}

É um problema porque é muito difícil prever os nomes das propriedades para diferentes idiomas.Espero que esta informação seja um aviso útil para alguém.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a sharepoint.stackexchange
scroll top