Silverlight和Windows Workflow Foundation

时间:2010-04-21 09:25:16

标签: silverlight workflow-foundation

 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;
}

我正在尝试从Silverlight项目中调用作为Web服务发布的Windows Workflow Foundation。当我从控制台应用程序调用它时它工作正常,因为我可以添加一个Web引用然后我只是创建该web服务的实例然后我调用我想要的方法。问题出在Silverlight项目中,因为我只能添加一个服务引用,所以我发现自己使用的SOAP根本不起作用,这就是代码错误:

这是代码:我用英语改变它。

Error in exécution Microsoft JScript: Unhandled Error in Silverlight Application  exception happened in the operation, résult not valide. Consult InnerException for more information.   in System.ComponentModel.AsyncCompletedEventArgs.RaiseExceptionIfNecessary()
   in AEDSilverlightIntegrated.ServiceReference2.demanderSubmitReportCompletedEventArgs.get_Result()
   in AEDSilverlightIntegrated.SilverEntryAedHeaderNew.mmm_demanderSubmitReportCompleted(Object sender, demanderSubmitReportCompletedEventArgs e)
   in AEDSilverlightIntegrated.ServiceReference2.Workflow1_WebServiceSoapClient.OndemanderSubmitReportCompleted(Object state)

2 个答案:

答案 0 :(得分:2)

好吧,我找到了一个解决方案,我希望与大家分享。解决方案是构建一个Web服务,作为作为Web服务发布的Windows Workflow Foundation和Silverlight应用程序之间的桥梁。不是那么天才,但这解决了这个问题。

答案 1 :(得分:0)

首先要做的事情。确保该服务公开cross-domain policy file以允许Silverlight进行跨域调用。

仅当服务与Silverlight主机页面位于不同的域时才需要这样做。