Silverlight no funciona en diferentes segmentos IP de la Red

Tengo una aplicación Silverlight que no puede iniciar sesión cuando se instaló en un segmento de IP diferente al del servidor. (El cliente está en 192.168.77.xx y el servidor está en 192.168.40.xx).

Cuando el cliente está en el mismo segmento, funciona sin problemas.

El cliente puede hacer ping, telnet y escritorio remoto en el servidor. También puede iniciar sesión en otras aplicaciones desde el servidor, pero no puede iniciar sesión en mi aplicación Silverlight.

¿Alguien sabe cómo ejecutar la aplicación Silverlight con diferentes segmentos de IP?

preguntado el 03 de mayo de 12 a las 14:05

¿Qué excepción estás recibiendo? ¿Está utilizando servicios web para su autenticación? un poco más de detalles pls. -

No obtengo nada, sí, estoy usando servicios web para la autenticación, usando REST POST, y la solicitud de autenticación no está en el registro de mi aplicación. HttpWebRequest req = (HttpWebRequest)asynchResult.AsyncState; HttpWebResponse res = (HttpWebResponse)request.EndGetResponse(asynchResult); Intento capturar el código anterior, y es una excepción, y también intento usar GET pero también falla.^^ -

@Stainedart, lo siento, recién entendí su pregunta: aquí está la excepción: [HttpWebRequest_WebException_RemoteServer] Argumentos: NotFound Las cadenas de recursos de depuración no están disponibles. A menudo, la clave y los argumentos proporcionan información suficiente para diagnosticar el problema. etc-

Esa excepción existe en uno de los clientes, todavía arroja una excepción aunque en el mismo segmento de IP, mientras que el problema de los diferentes segmentos de IP ya se resolvió agregando ClientAccessPolicy.xml en la raíz del servidor de aplicaciones:

1 Respuestas

Para evitar la falsificación de solicitudes entre sitios, Silverlight 4 (y versiones posteriores) solo permite la comunicación del sitio de origen de forma predeterminada para todas las solicitudes que no sean imágenes y medios. Para permitir que un control de Silverlight acceda a un servicio en otro dominio, el servicio debe optar explícitamente por permitir el acceso entre dominios.

Por lo tanto, debe colocar ClientAccessPolicy.xml or CrossDomain.xml en la raíz del sitio web donde se aloja la aplicación Silverlight.

Aquí hay una muestra de ClientAccessPolicy.xml (permite el acceso desde cualquier otro dominio a todos los recursos del dominio actual):

<?xml version="1.0" encoding="utf-8"?>
<access-policy>
  <cross-domain-access>
    <policy>
      <allow-from http-request-headers="SOAPAction">
        <domain uri="*"/>
      </allow-from>
      <grant-to>
        <resource path="/" include-subpaths="true"/>
      </grant-to>
    </policy>
  </cross-domain-access>
</access-policy>

Y aquí hay una muestra de CrossDomain.xml:

<?xml version="1.0"?>
<!DOCTYPE cross-domain-policy SYSTEM "http://www.macromedia.com/xml/dtds/cross-domain-policy.dtd">
<cross-domain-policy>
  <allow-http-request-headers-from domain="*" headers="SOAPAction,Content-Type"/>
</cross-domain-policy>

Consulta aquí acerca de hacer que un servicio esté disponible a través de los límites del dominio.

contestado el 03 de mayo de 12 a las 14:05

No utilice ClientAccessPolicy.xml Y CrossDomain.xml. ClientAccessPolicy.xml tiene más funciones. CrossDomain.xml solo se permite como función de compatibilidad, ya que ya existe en algunos sitios web Flash. - Codificación ido

Gracias lazyberezovsky y HiTechMagic, agregaré el código y probaré en la oficina del cliente este día, porque todavía estoy en casa. - Imam Baihaqi

¿Debería poner clientaccesspolicy.xml en el lado del servidor? Uso java para el servidor y tomcat, ¿dónde debo poner el archivo? Gracias - Imam Baihaqi

@ImamBaihaqi Sí, en el lado del servidor. A la raíz de su servidor. Este es un archivo xml simple, por lo que no hay diferencia en la tecnología utilizada en el servidor: sergey berezovskiy

@Lazyberezovsky, muchas gracias, puse ClientAccessPolicy.xml en la carpeta tomcat/webapps/root y ahora funciona, puedo iniciar sesión desde un segmento de IP diferente: Imam Baihaqi

No es la respuesta que estás buscando? Examinar otras preguntas etiquetadas or haz tu propia pregunta.