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)
答案 0 :(得分:2)
好吧,我找到了一个解决方案,我希望与大家分享。解决方案是构建一个Web服务,作为作为Web服务发布的Windows Workflow Foundation和Silverlight应用程序之间的桥梁。不是那么天才,但这解决了这个问题。
答案 1 :(得分:0)
首先要做的事情。确保该服务公开cross-domain policy file以允许Silverlight进行跨域调用。
仅当服务与Silverlight主机页面位于不同的域时才需要这样做。