2012-04-18 12 views
0

私はlightswitchアプリケーションでWCF RiaからCrystal Reportを生成する必要があります。開発ランタイムでは、エラーなしで正しく生成することができますが、リリース環境にプッシュするとエラーが発生します - クロススレッドアクセスが無効です。リリースでのクロススレッドアクセスが無効

私はすでにいくつかの記事を読んで、それはSilverlightのUIスレッドの問題は非常に可能性があり

partial void GenerateReport_Execute() 
    { 
     try 
     { 
      GenerateCrystalReport.Load(); 

      var temp = DataWorkspace.QUMCrystalReportDomainData.GenerateCrystalReport(SearchQuery.SelectedItem.GroupId, sQuarter, sYear, eQuarter, eYear); 

      System.Windows.Deployment.Current.Dispatcher.BeginInvoke(delegate() 
      { 
       var uri = new Uri("C:\\Temp\\ReportTest.pdf", UriKind.RelativeOrAbsolute); 

       if (AutomationFactory.IsAvailable) 
       { 
        var shell = AutomationFactory.CreateObject("Shell.Application"); 

        shell.ShellExecute(uri.ToString()); 

       } 
       else if (!System.Windows.Application.Current.IsRunningOutOfBrowser) 
       { 
        HtmlPage.Window.Navigate(uri, "_blank"); 
       } 
       else 
       { 
        throw new InvalidOperationException(); 
       } 
      }); 
     } 
     catch (Exception ex) 
     { 
      MessageBox.Show(ex.ToString());     
     } 

    } 

私が間違ってやっていますか?これを特定するのを手伝ってください。事前に

おかげで

サム

答えて

0

は、基本的には、下部にそのメッセージボックスがUIの問題を引き起こしている、私の質問に答えます。

Lightswitchのディスパッチャはwpfのディスパッチャ(メッセージボックスが使用するもの)と同じではありません。私が間違っている場合に修正してください。

関連する問題