Ho un'applicazione Windows Form che viene eseguita localmente sul desktop dell'utente. L'unico modo per accedere a Internet è eseguire System.Diagnostics.Process.Start (url) per avviare il browser predefinito dell'utente e indirizzarlo a vari URL (per verificare la presenza di aggiornamenti, contattaci, ecc.). E nulla di tutto questo accade senza che l'utente lo richieda esplicitamente facendo clic su una voce di menu o un pulsante.Che cosa causa il blocco di un'applicazione a Windows Firewall?
Sulla mia macchina occasionalmente ho ricevuto un messaggio di avviso di Windows Firewall all'avvio del programma, dicendo che Windows Firewall ha "bloccato alcune funzionalità" del programma per proteggere la macchina. Occasionalmente ricevo questo avviso anche quando eseguo il mio programma in Visual Studio (e la finestra di dialogo di avviso dice che vshost è stato bloccato dalla rete). Non succede tutto il tempo.
Non ho mai sentito da nessuno dei miei clienti che ciò stia accadendo sui loro PC, ma questo non significa che non lo sia. Ed è un avvertimento un po 'spaventoso per un utente meno tecnicamente esperto, quindi mi piacerebbe capire come eliminarlo se possibile.
Cosa potrebbe fare il mio programma per attivare questo avviso?
Modifica: l'unica cosa alquanto insolita che il mio programma sta eseguendo all'avvio è che utilizza la classe Microsoft.VisualBasic.ApplicationServices.WindowsFormsApplicationBase per applicare un'applicazione a istanza singola. So che questo fa della magia del threading dietro le quinte per rilevare nuove istanze e reindirizzarle. È possibile che stia ascoltando in rete per qualche motivo?
Questa è la cosa - non c'è niente che ovviamente stia ascoltando su qualsiasi porta. L'avviso si verifica sia in Visual Studio sia quando si esegue il file eseguibile installato. –
L'unica cosa un po 'insolita è che utilizzo Microsoft.VisualBasic.ApplicationServices.WindowsFormsApplicationBase per applicare un'applicazione singola istanza. Questo fa infiltrare roba dietro le quinte; Mi chiedo se potrebbe essere in ascolto sulla rete per processi di processo remoti. –
Aprire il prompt dei comandi ed eseguire "netstat -b" mentre il programma è in esecuzione per verificare se è in ascolto su qualsiasi porta. – Greg