Pregunta

Tengo problemas para entender cómo ListData.svc se puede depurar usando IE8 e IE9.

Tengo una URL que se parece a esta:hostname:8181/_vti_bin/listdata.svc/ImageBanners?$filter=endswith(Path,'TopLeft') y mostrar eq verdadero

Cuando intento acceder a él usando IE8 desde mi servidor independiente de SharePoint, recibo el error 400.

Cuando solicito la misma URL usando Firefox, funciona bien.

encima de eso hostname:8181/_vti_bin/listdata.svc/ImageBanners Funciona como debería ser incluso en IE.Entonces el problema parece estar en el $filter=endswith parte.

Sin embargo.Cuando solicito la misma URL en IE8 usando la dirección IP del servidor o el host local, obtengo resultados correctos incluso con filtros complejos.

¿Alguien puede, por favor, arrojar algo de luz sobre este misterio?¿Por qué tengo este tipo de comportamiento?

Información adicional:

  • SharePoint tiene instalada la versión rusa e inglesa.
  • La aplicación SharePoint utiliza autenticación NTLM.
  • La autenticación anónima en IIS está deshabilitada.
  • Fiddler muestra que cada recurso se solicita dos veces.La primera vez el servidor devuelve 401, y luego 200 o 400 dependiendo del navegador y la URL (ver detalles arriba).

    • cuando accedo ListData.svc Usar la solicitud HTTP correcta de Firefox se ve así:

    Aceptar:texto/html, aplicación/xhtml+xml, /
    Aceptar-Idioma:es-US
    Agente de usuario:Mozilla/5.0 (compatible;MSIE 9.0;Windows NT 6.1;¡GUAU64;Tridente/5.0)
    Aceptar codificación:gzip, desinflar
    Conexión:Mantener viva
    Galleta:WSS_KeepSessionAuthenticated={b3987daa-d463-415f-8fb3-d556c27e5bbf}
    Anfitrión:servidor local: 8181
    Autorización:NTLM TlRMTVNTU...

    • Cuando se utiliza la solicitud HTTP de IE8 se ve así (aviso lcid=1049.tal vez ese podría ser el problema?):

    Aceptar:imagen/jpeg, imagen/gif, imagen/pjpeg, aplicación/aplicación-x-ms, aplicación/xaml+xml, aplicación/x-ms-xbap, /
    Aceptar-Idioma:es-US
    Agente de usuario:Mozilla/4.0 (compatible;MSIE 7.0;Windows NT 6.1;¡GUAU64;Tridente/5.0;SLCC2;.NET CLR 2.0.50727;.NET4.0C;.NET4.0E;.NET CLR 3.5.30729;.NET CLR 3.0.30729;Ruta de información.3)
    Aceptar codificación:gzip, desinflar
    Conexión:Mantener viva
    Galleta:lcid=1049;WSS_KeepSessionAuthenticated={b3987daa-d463-415f-8fb3-d556c27e5bbf}
    Autorización:NTLM TlRMTVNTU...
    Anfitrión:nombre de host: 8181

¿Fue útil?

Solución

Finalmente lo he fijado.Resultó ser la característica de REST de SharePoint.necesitaba tomar Idioma de la interfaz de usuario ¡en consideración!

Por ejemplo, en el caso de la configuración regional en-us, la consulta REST debería verse así:

?$filtro=termina con(Camino,'Nombre de la carpeta')

Pero en ru-ru se convierte en:

?$filtro=termina con(poner,'Nombre de la carpeta')

Además, debes evitar las letras rusas.Entonces, finalmente debería verse así:

?$filtro=termina con(%D0%9F%D1%83%D1%82%D1%8C",'Nombre de la carpeta')

Sin embargo, este no es el único problema...El JSON que recibo también está localizado.Con esto quiero decir que las propiedades tienen diferentes nombres localizados.Por ejemplo, JSON devuelto en en-us:

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

en ru-ru:

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

Es un problema porque es muy difícil predecir los nombres de las propiedades para diferentes idiomas.Espero que esta información sea una advertencia útil para alguien.

Licenciado bajo: CC-BY-SA con atribución
scroll top