Springen naar inhoud


- - - - -
VS 2010

Ontbrekende Items Tijdens Opstarten Applicatie



  • Log in a.u.b. om te beantwoorden
Er zijn 9 reacties in dit onderwerp

#1 Puffeltje

Puffeltje

    Senior Developer

  • Leden
  • PipPipPip
  • 124 berichten
    Laatst bezocht 05 dec 2018 13:21
  • LocatieBeverwijk

Geplaatst op 14 november 2018 - 11:21

de applicatie welke ik beschikbaar stel aan mijn collega's start bij mij keurig op maar bij de collega's sluit hij gelijk na het opstarten zonder foutmelding weer af. Mijn vermoeden is dat er bij hun een onderdeel ontbreekt welke voor de applicatie benodigd is, of dat ze een verkeerde/verouderd onderdeel hebben.

Is er een mogelijkheid om dit soort ontbrekende foutmeldingen bij het opstarten zichtbaar te krijgen?

Voor de goede orde: de applicatie maakt geen gebruik van een installatieprocedure maar wordt met alle bibliotheken via het netwerk beschikbaar gesteld. Hierbij gebruik ik onderdelen van Devexpress waarvan de DLL-bestanden dus bij de applicatie staan.

#2 Dirk Andries

Dirk Andries

    Guru Developer

  • Leden
  • PipPipPipPipPipPip
  • 1092 berichten
    Laatst bezocht
  • LocatieGent

Geplaatst op 15 november 2018 - 11:58

Loggen: gebruik NLog of SeriLog of Apache log4net (of zelfs gewoon de System.Diagnostic.TraceSource klasse),  of ...
Best ook de unhandled exceptions afvangen door een event handler toe te voegen aan de AppDomain.UnhandledExceptionEvent event.

Dat laatste is misschien al voldoende om de fout naar boven te halen.

#3 Dirk Andries

Dirk Andries

    Guru Developer

  • Leden
  • PipPipPipPipPipPip
  • 1092 berichten
    Laatst bezocht
  • LocatieGent

Geplaatst op 15 november 2018 - 12:02

Bericht bekijkenPuffeltje, op 14 november 2018 - 11:21, zei:

de applicatie welke ik beschikbaar stel aan mijn collega's start bij mij keurig op maar bij de collega's sluit hij gelijk na het opstarten zonder foutmelding weer af. Mijn vermoeden is dat er bij hun een onderdeel ontbreekt welke voor de applicatie benodigd is, of dat ze een verkeerde/verouderd onderdeel hebben.

Is er een mogelijkheid om dit soort ontbrekende foutmeldingen bij het opstarten zichtbaar te krijgen?

Voor de goede orde: de applicatie maakt geen gebruik van een installatieprocedure maar wordt met alle bibliotheken via het netwerk beschikbaar gesteld. Hierbij gebruik ik onderdelen van Devexpress waarvan de DLL-bestanden dus bij de applicatie staan.
Je kan eens kijken in de event log op die systemen of er geen unhandled exceptions optreden op die machines.

#4 Puffeltje

Puffeltje

    Senior Developer

  • Leden
  • PipPipPip
  • 124 berichten
    Laatst bezocht 05 dec 2018 13:21
  • LocatieBeverwijk

Geplaatst op 15 november 2018 - 12:20

bedankt voor de tips. ik ga daar vanmiddag mee aan de gang.

#5 Damic

Damic

    Master Developer

  • Leden
  • PipPipPipPipPip
  • 645 berichten
    Laatst bezocht 03 dec 2018 19:54
  • LocatieMechelen (BE)

Geplaatst op 15 november 2018 - 19:01

Ontbrekende Dot net?

#6 Puffeltje

Puffeltje

    Senior Developer

  • Leden
  • PipPipPip
  • 124 berichten
    Laatst bezocht 05 dec 2018 13:21
  • LocatieBeverwijk

Geplaatst op 16 november 2018 - 21:48

Gelukt. De applicatie gaf door gebruikmaking van het UnhandledExceptionEvent keurig aan waar het probleem zat. Er ontbrak een bestand. Dit toegevoegd en de applicatie werkt weer.

Bedankt voor jullie hulp.

#7 Puffeltje

Puffeltje

    Senior Developer

  • Leden
  • PipPipPip
  • 124 berichten
    Laatst bezocht 05 dec 2018 13:21
  • LocatieBeverwijk

Geplaatst op 17 november 2018 - 17:18

het probleem is nu handmatig verholpen door het bestand te copieeren. Het probleem kan natuurlijk in de toekomst zich weer voor doen als er een bestand ongewild verdwijnt. Op het ogenblik heb ik de volgende code gebruik om de fout weer te geven:

Code:
Private Sub MyApplication_UnhandledException(sender As Object, e As Microsoft.VisualBasic.ApplicationServices.UnhandledExceptionEventArgs) Handles Me.UnhandledException
MessageBox.Show(e.Exception.Message)
End Sub

Op deze wijze krijg ik een groot stuk tekst retour wat aan geeft wat het probleem is. Wat ik nu wil is dat bij een ontbrekend bestand dit bestand van de server opgehaald word en dat zo de fout aangepakt kan worden. Hoe bepaal ik via code dat de foutmelding een ontbrekend bestand behelst en hoe bepaal ik welk document dit dan is?

En wat is dan gebruikelijk:
a ) bij een foutmelding van een ontbrekend bestand dit bestand copieeren
b ) in het startup event altijd een controle uitvoeren of er ontbrekende bestanden zijn. zo ja, dan deze bestanden ophalen van de server.

Mag ik er van uit gaan dat het startup event altijd uitgevoerd wordt, ook als er ontbrekende bestanden zijn, en er dus een UnhandledException event afgevuurd word?

#8 Damic

Damic

    Master Developer

  • Leden
  • PipPipPipPipPip
  • 645 berichten
    Laatst bezocht 03 dec 2018 19:54
  • LocatieMechelen (BE)

Geplaatst op 18 november 2018 - 00:07

Wat voor soort bestand is het, want je zou een check kunnen doen of het bestand wel aanwezig is

#9 Puffeltje

Puffeltje

    Senior Developer

  • Leden
  • PipPipPip
  • 124 berichten
    Laatst bezocht 05 dec 2018 13:21
  • LocatieBeverwijk

Geplaatst op 18 november 2018 - 14:50

de bestanden zijn hoofdzakelijk DLL-bestanden. In de applicatie gebruik ik onderdelen van DEVEXPRESS. Als ik de applicatie uitbreid kan het zijn dat er nieuwe DLL-bestanden bij de gebruiker op de pc geplaatst moeten worden. De check wil ik doen maar als de applicatie niet wil starten omdat deze benodigde DLL-bestanden niet aanwezig zijn heb ik een probleem.

Als het startup event wel altijd uitgevoerd wordt dan kan ik daar de controles uitvoeren.

Een andere oplossing is dat de gebruiker begint met een klein controleprogramma welke eerst controleert of alle benodigde bestanden aanwezig zijn, hierna indien nodig ontbrekende bestanden vanaf de server ophaalt, en daarna het hoofdprogramma op start. Dit controleprogramma gebruikt alleen standaard windows onderdelen en zal daarom geen opstartproblemen hebben (of in ieder geval zo min mogelijk). Deze oplossing met een klein controleprogramma kan naar mijn mening prima werken, en kan desnoods ook de controle bevatten van de volgende onderdelen (welke nu nog in het hoofdprogramma zitten):
  • controleren of het internet bereikbaar is
  • controleren of de server bereikbaar is
  • controleren of er een nieuwe versie van het helpbestand beschikbaar is op de server
  • controleren of er een nieuwe versie van de applicatie beschikbaar is op de server


#10 Dirk Andries

Dirk Andries

    Guru Developer

  • Leden
  • PipPipPipPipPipPip
  • 1092 berichten
    Laatst bezocht
  • LocatieGent

Geplaatst op 19 november 2018 - 14:05

1. Als je het Visual Basic Application Model gebruikt dan kan je in onderhavig schema zien wat de volgorde van events (en virtuele/overridable methods) is:

Bijlage  vb_modelrun.gif   19,09K   0 downloads

Zie ook  Windows Forms ApplicationBaseen Extending the Visual Basic Application Model


2. Als je dat niet gebruikt, gewoon in je eigen Main method alle checks doen voordat je de applicatie opstart met Application.Run
Voorbeeldje:
Visual Basic Code:
Public Class Starter
	Shared Sub Main()
		' werk ...
		Dim kernel As IKernel = New StandardKernel(New RepositoryModule)
		Dim bulkRepo = kernel.Get(Of IBulkInsertRepository)()
		If Not bulkRepo.HeeftData(Of Klant)() Then
			Dim pop As New Populator.Populeerder(bulkRepo)
			pop.Populeer()
		End If
		' start de app ...
		Dim mainForm = kernel.Get(Of FormMain)()
		Application.EnableVisualStyles()
		Application.Run(mainForm)
	End Sub
End Class


Public Class RepositoryModule
	Inherits NinjectModule
	Public Overrides Sub Load()
		Bind(Of IBuilderRepository).To(Of ReserveringRepository)()
		Bind(Of IReserveringRepository).To(Of ReserveringRepository)()
		Bind(Of IKlantenRepository).To(Of KlantenRepository)()
		Bind(Of IBulkInsertRepository).To(Of BulkInsertRepository)()
		Bind(Of FormMain.IFormFabriek).ToFactory()
	End Sub
End Class
 







Ook met taq VS 2010 voorzien

0 gebruiker(s) lezen dit onderwerp

0 lid(leden), 0 bezoeker(s), 0 anonieme gebruikers

Inloggen


[VS 2010] Untitled 1

Met dank aan J├╝rgen voor de jarenlange inzet van visualbasic.be (anno dec 2000)
Met dank aan Mike en Ronneke voor de jarenlange inzet van vbib.be (anno dec 2010)
Met dank aan PascalBianca voor de jarenlange inzet van vbib.be (anno dec 2016)