Zum Inhalt springen
View in the app

A better way to browse. Learn more.

Fachinformatiker.de

A full-screen app on your home screen with push notifications, badges and more.

To install this app on iOS and iPadOS
  1. Tap the Share icon in Safari
  2. Scroll the menu and tap Add to Home Screen.
  3. Tap Add in the top-right corner.
To install this app on Android
  1. Tap the 3-dot menu (⋮) in the top-right corner of the browser.
  2. Tap Add to Home screen or Install app.
  3. Confirm by tapping Install.

Empfohlene Antworten

Veröffentlicht

Hi,

das problem zu beschreiben ist etwas schwierig, weil ich selbst nur schwammige Vermutungen hab wo es her kommt, und der Fehler nicht grade ausdruckstark ist.

Mein Programm hat unter Windows XP immer super funktioniert, sowohl wenn ich es auf der Lokalen Festplatte gestartet habe, als auch wenn ich es von unserem Fileserver gestartet habe.

Unter Windows 7 (64Bit) jedoch, funktioniert das Programm bei mir auf der Lokalen festplatte noch einwand frei.

Versuche ich aber das Programm vom Fileserver zu starten, startet das Programm erst garnicht richtig und steigt direkt mit: "Programm funktioniert nicht mehr" aus.

Als ich auf dem Server mal das Projekt mit dem Debugger starten wollte, kam der Debugger garnicht erst in meinen Code und stieg mehr oder minder direkt nach dem buildvorgang mit einer Socketexception aus.

Leider sind die Details zur Exception recht mager, hier das was ich über view Detail, der Fehlermeldung erfahren konnte:

Data: {System.Collections.ListDictionaryInternal}(Count=0)

ErrorCode:10022

StackTrace:

at System.Net.Sockets.Socket..ctor(AddressFamily addressFamily, SocketType socketType, ProtocolType protocolType)

at System.Net.Sockets.TcpListener..ctor(IPAddress localaddr, Int32 port)

at System.Runtime.Remoting.Channels.ExclusiveTcpListener..ctor(IPAddress localaddr, Int32 port)

at System.Runtime.Remoting.Channels.Tcp.TcpServerChannel.SetupChannel()

at System.Runtime.Remoting.Channels.Tcp.TcpServerChannel..ctor(IDictionary properties, IServerChannelSinkProvider sinkProvider, IAuthorizeRemotingConnection authorizeCallback)

at System.Runtime.Remoting.Channels.Tcp.TcpChannel..ctor(IDictionary properties, IClientChannelSinkProvider clientSinkProvider, IServerChannelSinkProvider serverSinkProvider)

at Microsoft.VisualBasic.ApplicationServices.WindowsFormsApplicationBase.RegisterChannel(Boolean SecureChannel)

at Microsoft.VisualBasic.ApplicationServices.WindowsFormsApplicationBase.Run(String[] commandLine)

at PRIME.My.MyApplication.Main(String[] Args) in 17d14f5c-a337-4978-8281-53493378c1071.vb:line 81

at System.AppDomain._nExecuteAssembly(Assembly assembly, String[] args)

at System.Runtime.Hosting.ApplicationActivator.CreateInstance(ActivationContext activationContext, String[] activationCustomData)

at Microsoft.VisualStudio.HostingProcess.HostProc.RunUsersAssemblyDebugInZone()

at System.Threading.ExecutionContext.Run(ExecutionContext executionContext, ContextCallback callback, Object state)

at System.Threading.ThreadHelper.ThreadStart()

Kennt jemand diese Art von Fehler, oder kann mir zumindest einen Denkanstroß geben in welcher Richtung ich nach dem Grund des Fehlers suchen muss?

Ich bin aktuell ratlos, meine einzigen 2 Vermutungen wären das irgendwas im Buildscript für windows 7 anders sein müsste oder das der Server mit W7 bzw 64 Bit Betriebssystem nicht klar kommt.

Gruß Lucas

Sind die Ports, mit denen du den TcpListener erstellst, auf dem Rechner vielleicht einfach gesperrt oder bereits anderweitig belegt?

Und: Ist das die exakte Fehlermeldung, die du in deinem Catch-Block ausgegeben bekommst? Irgendwie meine ich mich zu erinnern, dass die etwas "sprechender" waren, bevor die Aufrufhistorie angehängt wird.

Gruß, Goulasz

/Edit: Meinst du nicht, ein Thread reicht?

  • Autor

ich kann erst garkeinen TryCatch block einbauen, weil der Fehler entsteht bevor mein eigentlicher Code gelesen wird.

Edit: Doch, weis nicht wieso der 2te erschienen ist

Im Errorstacktrace ist meine App nur einmal enthalten, und dieses Stelle ist leider auserhalb des Codes den ich direkt sehe:

at PRIME.My.MyApplication.Main(String[] Args) in 17d14f5c-a337-4978-8281-53493378c1071.vb:line 81

oder weiß jemand wie ich an das file dort ran komme um einen Trycatch block um diese Zeile 81 zu setzten?

Bearbeitet von Lsteinme

[...]stieg mehr oder minder direkt nach dem buildvorgang mit einer Socketexception aus.[...]

Stieg er oder stieg er nicht? Haltepunkte setzen, prüfen, glücklich sein ;). Initialisierst du den Listener vielleicht schon, bevor du ihn in "deinem eigentlichen Code" verwendest? Was passiert außer dem Einbinden der Libs denn sonst noch relevantes, bevor du deinen Kram ausführst, was zu einer SocketException führen könnte?

Gruß, Goulasz

  • Autor

Das ist das Problem, ich habe keine Ahnung was diese Socketexception aus löst. Da ich bis dato keine Erfahrung in sachen Win7 und Fileserver(mit os Netapp) habe frage ich hier nach.

Wenn ich den Haltepunkt auf die erste Methode meins Codes der aufgerufen werden sollte setzte(loadmethode der ersten GUI, wird dieser erst garnicht angesteuert, heißt die Exception kommt vor eintritt in meinen von mir/meinen Vorgängern geschrieben Code auf, also im autogenerierten.

  • Autor

Okay, nach Tagen der suche nach den Problemen, die Socketexception war nur die Spitze des Eisberges, bin ich auf das wahre Problem gestoßen:

Aus welchem Grund auch immer fehlen meiner Application MANCHMAL bestimmte Sicherheitsbefugnisse. Die Application ist unter .net 3.5 entwickelt. Wie "markiere" ich meine Application so das sie egal wer sie ausführt immer Vollständige Sicherheitsberechtigungen anfordert? Aus den Artikeln zum Thema Securitypermissions die ich per Google gefunden habe bin ich irgendwie nicht so ganz schlau geworden.

PS: das This is a full trust application im Security reiter der Project-Propertys hatte keine Wirkung.

Okay, nach Tagen der suche nach den Problemen, die Socketexception war nur die Spitze des Eisberges, bin ich auf das wahre Problem gestoßen:

Aus welchem Grund auch immer fehlen meiner Application MANCHMAL bestimmte Sicherheitsbefugnisse. Die Application ist unter .net 3.5 entwickelt. Wie "markiere" ich meine Application so das sie egal wer sie ausführt immer Vollständige Sicherheitsberechtigungen anfordert? Aus den Artikeln zum Thema Securitypermissions die ich per Google gefunden habe bin ich irgendwie nicht so ganz schlau geworden.

PS: das This is a full trust application im Security reiter der Project-Propertys hatte keine Wirkung.

du hast anscheinend das sicherheitskonzept von windows nicht verstanden. beschäftige dich mit der Funktionsweise der UAC und wie man im einklang mit der UAC programmiert.

  • Autor
... wie man im einklang mit der UAC programmiert.

klingt irgendwie wie ein Buddistischer Lehrspruch^^ ne aber Spass bei Seite, müsste dann nicht alles funkionieren wenn ich das tool als Admin starte?

Ich hab in zwischen übrigens was entdeckt, vielleicht kann sich das ja wer erklären oder mir sagen wie ich den Compiler dazu zwinge es richtig zu machen.

Wenn meine Zugriffe klappen, wird neben den Libs die ich über den Reference Reiter eingetragen habe noch die Assembly System.EnterpriseServices vom Compiler geladen.

Das tut er aber leider nicht immer, bei denen bei (zum beispiel) die Datenbank funktionen nicht klappen wird diese Assembly nicht geladen.

Das Problem daran ist, wenn ich die Assembly einfach in die References aufnehme hilft das nichts, da ich sie nie direkt im Code verwende, fliegt sie sofort wieder beim Compilieren raus.

Ps, das gleiche Programm läd, bei denen bei denen es nicht klappt, einmal die Enterprise Lib(auf einer lokalen festplatte) und einmal nicht(auf dem übers Intranet erreichbaren Fileserver). Bei denen bei denen es klappt, läd der Compiler die Assembly auf beiden Pfaden.

Erstelle ein Konto oder melde dich an, um einen Kommentar zu schreiben.

Configure browser push notifications

Chrome (Android)
  1. Tap the lock icon next to the address bar.
  2. Tap Permissions → Notifications.
  3. Adjust your preference.
Chrome (Desktop)
  1. Click the padlock icon in the address bar.
  2. Select Site settings.
  3. Find Notifications and adjust your preference.