Silverlight, потребляющий ошибки в канале Одата? - PullRequest
0 голосов
/ 20 июня 2011

Я просто подключаю приложение silverlight к нашему провайдеру Одата. У меня уже есть приложение IPad, использующее провайдера OData, поэтому я знаю, что с провидором проблем нет.

Множество ошибок происходит с моим приложением silverlight, когда я пытаюсь получить данные из провайдера OData. Итак, вот мой код:

Dim context As MyEntities

    context = New MyEntities(New Uri("http://localhost:8080/MyOdataProvider/OData.svc"))

    ' Initialize the binding and view source collections.
    trackedOrders = New DataServiceCollection(Of MyUser)()
    ' Define a query that returns orders for a give customer.
    Dim query = From orderByCustomer In context.MyUsers _
                    Select orderByCustomer

    ' Asynchronously load the result of the query.
    trackedOrders.LoadAsync(query)

    ' Define a handler for the LoadCompleted event of the collection.
    AddHandler trackedOrders.LoadCompleted, _
    AddressOf trackedOrders_LoadCompleted

Private Sub trackedOrders_LoadCompleted(ByVal sender As Object, _
                                    ByVal e As LoadCompletedEventArgs)
    If e.Error Is Nothing Then
        ' Load all pages of Orders before binding.
        If trackedOrders.Continuation IsNot Nothing Then
            trackedOrders.LoadNextPartialSetAsync()
        Else

            ' Bind the root StackPanel element to the collection
            ' related object binding paths are defined in the XAML.
            'ordersViewSource.Source = trackedOrders

            ' Re-enable the button since the loading is complete.
            'getCustomerOrders.IsEnabled = True
        End If
    Else
        MessageBox.Show(String.Format("An error has occured: {0}", e.Error.Message))
        '   getCustomerOrders.IsEnabled = True
    End If
End Sub

Каждый раз, когда он попадает в trackedOrders_LoadCompleted, e.error имеет следующий вид:


{System.InvalidOperationException: An произошла ошибка при обработке этого запрос. ---> System.Security.SecurityException: [Arg_SecurityException] Аргументы:
Строки ресурса отладки недоступен. Часто ключ и аргументы дают достаточно информация для диагностики проблемы. Увидеть http://go.microsoft.com/fwlink/?linkid=106663&Version=5.0.60401.00&File=mscorlib.dll&Key=Arg_SecurityException в System.Net.Browser.ClientHttpWebRequest.EndGetResponse (IAsyncResult asyncResult) в System.Data.Services.Http.ClientHttpWebRequest.EndGetResponse (IAsyncResult asyncResult) в System.Data.Services.Client.QueryResult.AsyncEndGetResponse (IAsyncResult asyncResult) --- конец внутреннего трассировка стека исключений --- в System.Data.Services.Client.BaseAsyncResult.EndExecute [Т] (Объект источник, метод String, IAsyncResult asyncResult) в System.Data.Services.Client.QueryResult.EndExecute [TElement] (Объект источник, IAsyncResult asyncResult)
в System.Data.Services.Client.DataServiceRequest.EndExecute [TE lement] (Источник объекта, Контекст 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.Services.Client.DataServiceCollection 1.<>c__DisplayClassd.<>c__DisplayClassf.<BeginLoadAsyncOperation>b__b()} System.InvalidOperationException: {System.InvalidOperationException: An error occurred while processing this request. ---> System.Security.SecurityException: [Arg_SecurityException] Arguments:<br> Debugging resource strings are unavailable. Often the key and arguments provide sufficient information to diagnose the problem. See <a href="http://go.microsoft.com/fwlink/?linkid=106663&Version=5.0.60401.00&File=mscorlib.dll&Key=Arg" rel="nofollow">http://go.microsoft.com/fwlink/?linkid=106663&Version=5.0.60401.00&File=mscorlib.dll&Key=Arg</a>_SecurityException 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)<br> at System.Data.Services.C lient.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. <> С _DisplayClassf.b__b ()} * * одна тысяча двадцать-один


Я скопировал этот код из Microsoft о том, как это сделать, и его ублюдок довольно плохо, потому что я пытался изменить материал, чтобы увидеть, если он что-то меняет.

У меня также есть настройка clientAccessPolicy.xml в поставщике odata wwwroot, так что я надеюсь, что это не проблема. Это мой файл clientAccessPolicy:

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

Есть идеи о том, чем может быть вызвана ошибка? Я тут рву волосы.

...