Estoy intentando que Silverlight trabaje con una aplicación de muestra rápida y llamo a un servicio de reposo en otra computadora. El servidor que tiene el resto servicio tiene un clientaccesspolicy.xml que se parece a:Servicio de reposo Silverlight, excepción de seguridad
<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>
y está siendo recogido (al menos según las trazas de red los he corrido), y no hay ninguna solicitud de crossdomain. xml. El código C# parece:
public Page()
{
InitializeComponent();
string restUrl = "http://example.com/rest_service.html?action=test_result";
WebClient testService = new WebClient();
testService.DownloadStringCompleted += new DownloadStringCompletedEventHandler(testService_DownloadStringCompleted);
testService.DownloadStringAsync(new Uri(restUrl, UriKind.Absolute));
}
void testService_DownloadStringCompleted(object sender, DownloadStringCompletedEventArgs e)
{
if (e.Error == null)
{
LoadTreeViewWithData(e.Result);
}
}
Sin embargo, siempre me sale el siguiente error de Seguridad de vuelta:
{System.Security.SecurityException ---> System.Security.SecurityException: Security error. at System.Net.BrowserHttpWebRequest.InternalEndGetResponse(IAsyncResult asyncResult) at System.Net.BrowserHttpWebRequest.c__DisplayClass5.b__4(Object sendState) at System.Net.AsyncHelper.c__DisplayClass2.b__0(Object sendState) --- End of inner exception stack trace --- at System.Net.AsyncHelper.BeginOnUI(SendOrPostCallback beginMethod, Object state) at System.Net.BrowserHttpWebRequest.EndGetResponse(IAsyncResult asyncResult) at System.Net.WebClient.GetWebResponse(WebRequest request, IAsyncResult result) at System.Net.WebClient.DownloadBitsResponseCallback(IAsyncResult result)}
¿Qué estoy haciendo mal? ¿Y por qué el error de seguridad no me da información más útil?
¿Qué fue lo que tuvo que cambiar para que funcione? – stimms
No puede llamar a servicios de descanso cuando su proyecto Silverlight no es un proyecto web. –