【问题标题】:Silverlight calling Windows Workflow Foundation as a web serviceSilverlight 将 Windows Workflow Foundation 称为 Web 服务
【发布时间】:2011-06-21 06:20:27
【问题描述】:

我正在尝试调用从 Silverlight 项目发布为 Web 服务的 Windows Workflow Foundation。当我从控制台应用程序调用它时,它工作正常,因为我可以添加一个 Web 引用,创建该 Web 服务的实例,并调用我想要的方法。问题出在 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: 

【问题讨论】:

  • 您能描述一下问题所在吗?当您尝试运行该代码时会发生什么?

标签: silverlight workflow-foundation


【解决方案1】:

你有没有检查WCF service is callable by Silverlight是否?

  1. 确保cross domain policy 文件存在并在服务器上正确配置
  2. 确保使用了可以从 Silverlight 中调用的绑定

还有更多,但我赌的是#1

【讨论】:

    【解决方案2】:
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2010-09-18
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多