Исключение безопасности Silverlight при доступе к службе данных wcf - PullRequest
0 голосов
/ 02 августа 2011

Я создаю приложение silverlight, которое использует службу данных wcf, развернутую в облаке.Служба данных WCF отлично работает в браузере, однако, когда я использую его в качестве запроса службы данных для заполнения элементов управления и использую метод loadasync, я получаю следующую ошибку.

Я включил clientaccesspolicy.xml и crossdomain.xml, и он доступен и открыт для всех доменов.

Я использовал fiddler, но он даже не пытается получить файл clientaccesspolicy.xml, аполучите ошибку до этого.

Кто-нибудь знает, как найти, по крайней мере, что-то не так?

e.Error {System.InvalidOperationException: при обработке этого запроса произошла ошибка.---> System.Security.SecurityException ---> System.Security.SecurityException: ошибка безопасности.в System.Net.Browser.ClientHttpWebRequest.InternalEndGetResponse (IAsyncResult asyncResult) в System.Net.Browser.ClientHttpWebRequest. <> c_ DisplayClass5.b _4 (объект sendState) в SystemAsyn.ser.> c_ DisplayClass4.b _1 (объект sendState) --- конец трассировки стека внутренних исключений --- в System.Net.Browser.AsyncHelper.BeginOnUI (SendOrPostCallback beginMethod, состояние объекта) в System.Net.Browser.ClientHttpWebRequest.EndGetResponse (IAsyncResult asyncResult) в System.Data.Services.Http.ClientHttpWebRequest.EndGetResponse (IAsyncResult asyncResult) в качестве исключительной ситуации.--- в System.Data.Services.Client.BaseAsyncResult.EndExecute [T] (источник объекта, метод String, IAsyncResult asyncResult) в System.Data.Services.Client.QueryResult.EndExecute [TElement] (источник объекта, IAsyncResult async)в System.Data.Services.Client.DataServiceRequest.EndExecute [TElement] (источник объекта, контекст DataServiceContext, IAsyncResult asyncResult) в System.Data.Services.Client.DataServiceQuery 1.EndExecute(IAsyncResult asyncResult) at System.Data.Services.Client.DataServiceCollection 1. <> c_ DisplayClass2.b _1 (IAsyncResult asyncResult) в System.Data.Ser..Client.DataServiceCollection 1.<>c__DisplayClassd.<>c__DisplayClassf.<BeginLoadAsyncOperation>b__b()} [System.InvalidOperationException]: {System.InvalidOperationException: An error occurred while processing this request. ---> System.Security.SecurityException ---> System.Security.SecurityException: Security error. at System.Net.Browser.ClientHttpWebRequest.InternalEndGetResponse(IAsyncResult asyncResult) at System.Net.Browser.ClientHttpWebRequest.<>c__DisplayClass5.<EndGetResponse>b__4(Object sendState) at System.Net.Browser.AsyncHelper.<>c__DisplayClass4.<BeginOnUI>b__1(Object sendState) --- End of inner exception stack trace --- at System.Net.Browser.AsyncHelper.BeginOnUI(SendOrPostCallback beginMethod, Object state) at System.Net.Browser.ClientHttpWebRequest.EndGetResponse(IAsyncResult asyncResult) at System.Data.Services.Http.ClientHttpWebRequest.EndGetResponse(IAsyncResult asyncResult) at System.Data.Services.Client.QueryResult.AsyncEndGetResponse(IAsyncResult asyncResult) --- End of inner exception stack trace --- at System.Data.Services.Client.BaseAsyncResult.EndExecute[T](Object source, String method, IAsyncResult asyncResult) at System.Data.Services.Client.QueryResult.EndExecute[TElement](Object source, IAsyncResult asyncResult) at System.Data.Services.Client.DataServiceRequest.EndExecute[TElement](Object source, DataServiceContext context, IAsyncResult asyncResult) at System.Data.Services.Client.DataServiceQuery 1.EndExecute (IAsyncResult asyncResult) в System.Data.Services.Client.DataServiceCollection 1.<>c__DisplayClass2.<LoadAsync>b__1(IAsyncResult asyncResult) at System.Data.Services.Client.DataServiceCollection 1. <> C_ DisplayClassd. <> C _DisplayClassf.b_ * 1020()} Данные: {System.Collections.ListDictionaryInternal} InnerException: {System.Security.SecurityException ---> System.Security.SecurityException: ошибка безопасности.в System.Net.Browser.ClientHttpWebRequest.InternalEndGetResponse (IAsyncResult asyncResult) в System.Net.Browser.ClientHttpWebRequest. <> c _DisplayClass5.b_ 4 (объект sendState) в системе System.Net.> c _DisplayClass4.b_ 1 (Object sendState) --- конец трассировки стека внутренних исключений --- в System.Net.Browser.AsyncHelper.BeginOnUI (SendOrPostCallback beginMethod, состояние объекта) в System.Net.Browser.ClientHttpWebRequest.EndGetResponse (IAsyncResult asyncResult) в System.Data.Services.Http.ClientHttpWebRequest.EndGetResponse (IAsyncResult asyncResult) в том случае, когда возникла ошибка в качестве объектаэтот запрос."StackTrace: "at System.Data.Services.Client.BaseAsyncResult.EndExecute [T] (источник объекта, метод String, IAsyncResult asyncResult) \ r \ n в System.Data.Services.Client.QueryResult.EndExecute [TElement] (источник объекта, IAsyncResult asyncResult) \ r \ n в System.Data.Services.Client.DataServiceRequest.EndExecute [TElement] (Источник объекта, контекст DataServiceContext, IAsyncResult asyncResult) \ r \ n в System.Data.Services.CliQQuerySer.1. <> C _DisplayClass2.b_ 1 (IAsyncResult asyncResult) \ r \ n в System.Data.Services.Client.DataServiceCollection`1. <> C _DisplayClassd. <> C_ DisplayClassf.b _b () "

1 Ответ

0 голосов
/ 19 августа 2011

У меня была такая же проблема. я изменил свой clientaccesspolicy.xml на:

<?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>

после очистки кеша браузера моя клиентская программа загрузилась и работает нормально. надеюсь, что это поможет

...