Despues de un tiempo buscando soluciones alternativas al error "This operation can only occur on the UI Thread" como tratar de disparar eventos en el thread donde se ejecuta la intrerfaz de usuario, o disparando un timer que ejecute el codigo que necesito asincronicamente, encontre una solucion mas bonita, y es la posteada por "Generation 5". La receta es:
- Creamos una clase estatica.
- En una propiedad asignamos el dispatcher de la UI.
- Hacemos en nuestra clase un metodo Run() que ejecute nuestro codigo felizmente en la UI usando el metodo "BeginInvoke" del dispatcher.
Aquí el articulo original detallado y con ejemplos:
http://gen5.info/q/2008/06/25/getting-back-to-the-ui-thread-in-silverlight-2/
Showing posts with label silverlight. Show all posts
Showing posts with label silverlight. Show all posts
SharePoint Services Cross Domain Access con Silverlight
Cuando intentamos acceder a los servicios de SharePoint desde un cliente Silverlight (tenemos que tener en cuenta que el codigo se ejecuta en el servidor) eventualmente, dependiendo donde se encuentre el cliente, podemos encontrarnos con un error de javascript que dice algo como "CommunicationException: This could due to attemping to access a service in a cross-domain way without a proper cross-domain policy in place, or a policy that is unsuitable for SOAP services."
Esto es una medida de seguridad para el acceso desde clientes silverlight y flash. Para evitar esto, lo que debemos hacer es subir al root de nuestra site collection el archivo ClientAccessPolicy.xml, que debe contener algo como lo siguiente:
<?xml version="1.0" encoding="utf-8"?>
<access-policy>
<cross-domain-access>
<policy>
<allow-from http-request-headers="*">
<domain uri="*"/>
</allow-from>
<grant-to>
<resource path="/" include-subpaths="true"/>
</grant-to>
</policy>
</cross-domain-access>
</access-policy>
El ejemplo anterior, como podran ver, permite acceso desde cualquier dominio, para editar esto a gusto y piacere, y ver que otras cosas se pueden configurar desde las politicas de acceso, pueden revisar el siguiente artículo de la web de Microsoft:
Subscribe to:
Posts (Atom)