Skocz do zawartości
Forum użytkowników
Mariusz Miziolek

Sfera Nexo Aplikacja Wpf - brak bieżacej aplikacji

Polecane posty

Przy próbie utworzenia Uchwytu Sfery z wykorzystaniem UI, zgodnie z załączonym przykładem w dokumentacji SDK otrzymuję poniższy błąd:

'MPRO.exe' (CLR v4.0.30319: MPRO.exe): Loaded 'C:\GITHUB\M\MGT\bin\Debug\InsERT.Mox.Printing.dll'. Skipped loading symbols. Module is optimized and the debugger option 'Just My Code' is enabled.
Exception thrown: 'System.InvalidOperationException' in InsERT.Moria.Sfera.UI.Configuration.dll
The thread 0x850 has exited with code 0 (0x0).
The thread 0x9328 has exited with code 0 (0x0).
The thread 0x95bc has exited with code 0 (0x0).
The thread 0x95b0 has exited with code 0 (0x0).
System.InvalidOperationException: Brak bieżącej aplikacji
   w InsERT.Moria.Sfera.UI.Configuration.SferaUIModule.ConfigureApplication(IInjectionContainer unityContainer, IUnityContainer unity, LaunchMessage message)
   w InsERT.Moria.Sfera.MenedzerPolaczen.LS8=(UnityAdapter container, IUnityContainer unity, LaunchMessage launchMessage, Boolean ui)
   w InsERT.Moria.Sfera.MenedzerPolaczen.Polacz(DanePolaczenia danePolaczenia, ProductId produkt, Nullable`1 dodatkowyProdukt1, Nullable`1 dodatkowyProdukt2, Nullable`1 dodatkowyProdukt3, Nullable`1 dodatkowyProdukt4, Nullable`1 dodatkowyProdukt5)
   w MGT.ViewModel.Helpers.Nexo.SferaLauncherNexo.UruchomSfere() w C:\GITHUB\M\MGT\ViewModel\Helpers\Nexo\SferaLauncherNexo.cs:wiersz 21
Exception thrown: 'System.InvalidOperationException' in MPRO.exe
'MPRO.exe' (CLR v4.0.30319: MPRO.exe): Loaded 'C:\WINDOWS\Microsoft.Net\assembly\GAC_MSIL\System.Transactions.resources\v4.0_4.0.0.0_pl_b77a5c561934e089\System.Transactions.resources.dll'. Module was built without symbols.
System.Transactions Critical: 0 : <TraceRecord xmlns="http://schemas.microsoft.com/2004/10/E2ETraceEvent/TraceRecord" Severity="Critical"><TraceIdentifier>http://msdn.microsoft.com/TraceCodes/System/ActivityTracing/2004/07/Reliability/Exception/Unhandled</TraceIdentifier><Description>Nieobsługiwany wyjątek</Description><AppDomain>MPRO.exe</AppDomain><Exception><ExceptionType>System.InvalidOperationException, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</ExceptionType><Message>Brak bieżącej aplikacji</Message><StackTrace>   w InsERT.Moria.Sfera.UI.Configuration.SferaUIModule.ConfigureApplication(IInjectionContainer unityContainer, IUnityContainer unity, LaunchMessage message)
   w InsERT.Moria.Sfera.MenedzerPolaczen.LS8=(UnityAdapter container, IUnityContainer unity, LaunchMessage launchMessage, Boolean ui)
   w InsERT.Moria.Sfera.MenedzerPolaczen.Polacz(DanePolaczenia danePolaczenia, ProductId produkt, Nullable`1 dodatkowyProdukt1, Nullable`1 dodatkowyProdukt2, Nullable`1 dodatkowyProdukt3, Nullable`1 dodatkowyProdukt4, Nullable`1 dodatkowyProdukt5)
   w MGT.ViewModel.Helpers.Nexo.SferaLauncherNexo.UruchomSfere() w C:\GITHUB\M\MGT\ViewModel\Helpers\Nexo\SferaLauncherNexo.cs:wiersz 28
   w MPRO.View.NexoLogin.NexoLogin..ctor() w C:\GITHUB\M\MGT\View\NexoLogin\NexoLogin.xaml.cs:wiersz 34
   w MPRO.AplikacjaStartowa.Main(String[] args) w C:\GITHUB\M\MGT\AplikacjaStartowa.cs:wiersz 31</StackTrace><ExceptionString>System.InvalidOperationException: Brak bieżącej aplikacji
   w InsERT.Moria.Sfera.UI.Configuration.SferaUIModule.ConfigureApplication(IInjectionContainer unityContainer, IUnityContainer unity, LaunchMessage message)
   w InsERT.Moria.Sfera.MenedzerPolaczen.LS8=(UnityAdapter container, IUnityContainer unity, LaunchMessage launchMessage, Boolean ui)
   w InsERT.Moria.Sfera.MenedzerPolaczen.Polacz(DanePolaczenia danePolaczenia, ProductId produkt, Nullable`1 dodatkowyProdukt1, Nullable`1 dodatkowyProdukt2, Nullable`1 dodatkowyProdukt3, Nullable`1 dodatkowyProdukt4, Nullable`1 dodatkowyProdukt5)
   w MGT.ViewModel.Helpers.Nexo.SferaLauncherNexo.UruchomSfere() w C:\GITHUB\M\MGT\ViewModel\Helpers\Nexo\SferaLauncherNexo.cs:wiersz 28
   w MPRO.View.NexoLogin.NexoLogin..ctor() w C:\GITHUB\M\MGT\View\NexoLogin\NexoLogin.xaml.cs:wiersz 34
   w MPRO.AplikacjaStartowa.Main(String[] args) w C:\GITHUB\M\MGT\AplikacjaStartowa.cs:wiersz 31</ExceptionString></Exception></TraceRecord>
An unhandled exception of type 'System.InvalidOperationException' occurred in MPRO.exe
Brak bieżącej aplikacji

Metoda do utworzenia Uchwytu:

public static Uchwyt UruchomSfere()
{
  try
  {
    DanePolaczenia danePolaczenia = DanePolaczenia.Jawne("(local)\\INSERTGT", "Nexo_MGT", false, "sa", "");
    MenedzerPolaczen mp = new MenedzerPolaczen();
    mp.DostepDoUI = true;
    Uchwyt sfera = mp.Polacz(danePolaczenia, ProductId.Subiekt);
    return sfera;
  }
  catch (Exception e)
  {
    Console.WriteLine(e);
    throw;
  }

}

Przy tej samej konfiguracji ale bez użycia UI, Uchwyt tworzy się poprawnie.

 

Proszę o informację gdzie szukać problemu. 

Udostępnij ten post


Link to postu

Prawdopodobnie tworzy Pan uchwyt przed utworzeniem instancji aplikacji WPF. Zgodnie z instrukcją do SDK, należy najpierw utworzyć aplikację, tj. obiekt klasy dziedziczącej po klasie AplikacjaWpf, uruchomić ją przy pomocy metody Uruchom(), a dopiero potem utworzyć uchwyt. 

 

Udostępnij ten post


Link to postu

Dziękuje za podpowiedź ale to było moje pierwsze podejrzenie które wykluczyliśmy. Aplikacja została napisana zgodnie z dostarczoną dokumentacją. 

Klasa startowa:

[STAThread]
static void Main(string[] args)
{
    AplikacjaStartowa AppStart = new AplikacjaStartowa();
    AppStart.StartupUri = new System.Uri("MainWindow.xaml ", System.UriKind.Relative);
    AppStart.Uruchom();
}

W tej samej aplikacji udało nam się utworzyć obiekt strefy wyołując inną formę przy starcie, przy pierwszej próbie było to dla klasy:

 public partial class MainWindow : RadRibbonWindow
{
}

W powyższym utworzenie obiektu Sfery kończy się powyższym błedem, przy zmianie klasy na

 public partial class MainWindow : RadWindow
{
}

lub

 public partial class MainWindow : Window
{
}

Problem nie wystepuję, dzięki temu możemy kontynuować prace ale może warto sprawdzić dlaczego przy dziedziczeniu z RadRibbonWindow przy wykorzystaniu jako main window taki problem występuje. (RadRibbinWindow as Main Window)

Udostępnij ten post


Link to postu

Niestety, nie udało mi się powtórzyć tego problemu z RadRibbonWindow. 

Zadziałał u mnie taki kod:

class AplikacjaStartowa : AplikacjaWpf
{
  [STAThread]
  static void Main(string[] args)
  {
    var appStart = new AplikacjaStartowa
    {
      StartupUri = new System.Uri("MainWindow.xaml ", System.UriKind.Relative),
      ShutdownMode = System.Windows.ShutdownMode.OnLastWindowClose
    };
  	appStart.Uruchom();
  }
}
<telerikRibbon:RadRibbonWindow x:Class="Sfera_telerik_wpf.MainWindow"
        xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
        xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
        xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
        xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
        xmlns:telerikRibbon="clr-namespace:Telerik.Windows.Controls;assembly=Telerik.Windows.Controls.RibbonView"
        mc:Ignorable="d"
        Title="MainWindow" Height="450" Width="800">
    <Grid>
        <Grid.RowDefinitions>
            <RowDefinition Height="Auto" />
            <RowDefinition Height="*" />
        </Grid.RowDefinitions>

        <telerikRibbon:RadRibbonView x:Name="RibbonView" Grid.Row="0" ApplicationName="Aplikacja sferyczna z Telerikiem" >
            <telerikRibbon:RadRibbonView.Items>
                <telerikRibbon:RadRibbonTab Header="Jeden" />
                <telerikRibbon:RadRibbonTab Header="Dwa" />
                <telerikRibbon:RadRibbonTab Header="Trzy" />
            </telerikRibbon:RadRibbonView.Items>
        </telerikRibbon:RadRibbonView>

        <Button x:Name="UruchomSfereButton" Content="Uruchom Sferę" Click="UruchomSfereButton_Click" 
                VerticalAlignment="Center"
                HorizontalAlignment="Center" 
                Grid.Row="1"/>
    </Grid>
</telerikRibbon:RadRibbonWindow>
public partial class MainWindow : RadRibbonWindow
{
  public MainWindow()
  {
    InitializeComponent();
  }

  private void UruchomSfereButton_Click(object sender, RoutedEventArgs e)
  {
    var uchwyt = UruchomSfere();
    _ = MessageBox.Show("Sfera została uruchomiona");
  }

  static Uchwyt UruchomSfere()
  {
    DanePolaczenia danePolaczenia = DanePolaczenia.Jawne("(local)", "nexo_31_1_2", true);
    MenedzerPolaczen mp = new MenedzerPolaczen();
    mp.DostepDoUI = true;
    Uchwyt sfera = mp.Polacz(danePolaczenia, ProductId.Subiekt);
    _ = sfera.ZalogujOperatora("Szef", "robocze");
    return sfera;
  }
}

 

Udostępnij ten post


Link to postu

×