Silverlight вызывает Windows Workflow Foundation в качестве веб-службы - PullRequest
1 голос
/ 20 апреля 2010

Я пытаюсь вызвать Windows Workflow Foundation , опубликованный как веб-сервис из проекта Silverlight. Когда я вызываю его из консольного приложения, оно работает нормально, потому что я могу добавить веб-ссылку, создать экземпляр этого веб-сервиса и вызвать нужный мне метод. Проблема в проекте Silverlight, потому что я могу просто добавить ссылку на службу, чтобы я работал с SOAP-материалами, которые вообще не работают, и вот код:

private void btnUpdate_Click(object sender, RoutedEventArgs e)
{
    xxxxxxx.Workflow1_WebServiceSoapClient zer = new xxxxx.Workflow1_WebServiceSoapClient();
    zer.demanderSubmitReportCompleted += new EventHandler<xxxxxxxxxxxxxxx.demanderSubmitReportCompletedEventArgs>(service2);
    zer.demanderSubmitReportAsync("zzz", 20000);

}

public void service2(object sender, xxxxx.demanderSubmitReportCompletedEventArgs e)
{
        string a = e.Result;
}

Обновление:

Это сообщение об ошибке. Я знаю, это может выглядеть сложно, потому что это по-французски:

L'exception System.ServiceModel.CommunicationException n'a pas été gérée par le code utilisateur
  Message="Une erreur s'est produite en tentant d'effectuer une demande à l'URI 'http://localhost:49783/AED_DA_Workflow_Services_WebService/AED_DA_Workflow_Services.Workflow1_WebService.asmx'. Ce problème peut être dû à une tentative d'accès à un service entre domaines sans qu'une stratégie entre domaines appropriée soit en place, ou une stratégie inadaptée aux services SOAP. Il est possible que vous soyez contraint de contacter le propriétaire du service pour publier un fichier de stratégie entre domaines et veiller à ce qu'il autorise l'envoi d'en-têtes HTTP SOAP. Cette erreur peut également être liée à l'utilisation de  types internes dans le proxy de service Web sans utiliser l'attribut InternalsVisibleToAttribute. Consultez l'exception interne pour plus de détails."
  StackTrace:
       à System.ServiceModel.AsyncResult.End[TAsyncResult](IAsyncResult result)
       à System.ServiceModel.Channels.ServiceChannel.SendAsyncResult.End(SendAsyncResult result)
       à System.ServiceModel.Channels.ServiceChannel.EndCall(String action, Object[] outs, IAsyncResult result)
       à System.ServiceModel.ClientBase`1.ChannelBase`1.EndInvoke(String methodName, Object[] args, IAsyncResult result)
       à AEDSilverlightIntegrated.AED_DA_Workflow_Services_WebService.Workflow1_WebServiceSoapClient.Workflow1_WebServiceSoapClientChannel.EnddemanderSubmitReport(IAsyncResult result)
       à AEDSilverlightIntegrated.AED_DA_Workflow_Services_WebService.Workflow1_WebServiceSoapClient.AEDSilverlightIntegrated.AED_DA_Workflow_Services_WebService.Workflow1_WebServiceSoap.EnddemanderSubmitReport(IAsyncResult result)
       à AEDSilverlightIntegrated.AED_DA_Workflow_Services_WebService.Workflow1_WebServiceSoapClient.EnddemanderSubmitReport(IAsyncResult result)
       à AEDSilverlightIntegrated.AED_DA_Workflow_Services_WebService.Workflow1_WebServiceSoapClient.OnEnddemanderSubmitReport(IAsyncResult result)
       à System.ServiceModel.ClientBase`1.OnAsyncCallCompleted(IAsyncResult result)
  InnerException: System.Security.SecurityException
       Message=""
       StackTrace:
            à System.Net.Browser.AsyncHelper.BeginOnUI(SendOrPostCallback beginMethod, Object state)
            à System.Net.Browser.BrowserHttpWebRequest.EndGetResponse(IAsyncResult asyncResult)
            à System.ServiceModel.Channels.HttpChannelFactory.HttpRequestChannel.HttpChannelAsyncRequest.CompleteGetResponse(IAsyncResult result)
       InnerException: System.Security.SecurityException
            Message="Erreur de sécurité."
            StackTrace:
                 à System.Net.Browser.BrowserHttpWebRequest.InternalEndGetResponse(IAsyncResult asyncResult)
                 à System.Net.Browser.BrowserHttpWebRequest.<>c__DisplayClass5.<EndGetResponse>b__4(Object sendState)
                 à System.Net.Browser.AsyncHelper.<>c__DisplayClass2.<BeginOnUI>b__0(Object sendState)
            InnerException: 

Ответы [ 2 ]

1 голос
/ 21 июня 2011
1 голос
/ 02 апреля 2011

Вы проверяли, может ли служба WCF вызываться Silverlight ?

  1. Убедитесь, что файл для политики домена присутствует и правильно настроен на сервере
  2. Убедитесь, что используется привязка, которую можно вызвать из Silverlight

Это больше, но моя ставка на # 1

...