2010-04-21 98 views
0
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東西,而這裏是代碼錯誤:Silverlight和Windows Workflow Foundation

這裏是代碼:我改變它英語中的一點點。

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

第一件事第一件事。確保該服務公開cross-domain policy file以允許Silverlight進行跨域呼叫。

僅當服務位於與Silverlight主機頁面不同的域時才需要。

+0

我加入了跨域文件,但它不工作:<?XML版本= 「1.0」>! <!DOCTYPE跨域政策體系「http://www.macromedia.com/xml/dtds /cross-domain-policy.dtd「> user298549 2010-04-28 13:02:31

2

那麼,我找到了一個解決方案,我想與大家分享。解決方案是構建一個Web服務,該服務作爲作爲Web服務發佈的Windows Workflow Foundation和Silverlight應用程序之間的橋樑。不是很好,但是這可以解決問題。

相關問題