Visualizzazione dei risultati da 1 a 9 su 9
  1. #1

    [C#] Errore nel metodo HttpServerUtility.Execute

    Sto cercando di utilizzare il metodo in questione per lanciare uno script PHP presente nel mio spazio WEB.

    La sintassi che uso è la seguente:

    codice:
    public HttpServerUtility server; 
    
    // e nel corpo del programma
    server.Execute(Indirizzo_script_PHP);
    quando lancio il programma viene sollevata la seguente eccezione:

    NullReferenceException
    Riferimento a un oggetto non impostato su un'istanza di oggetto
    Il tutto riferito alla linea di codice

    codice:
    server.Execute(Indirizzo_script_PHP);
    La classe HttpServerUtility non necessita di un costruttore, non capisco cosa sia a sollevare l'eccezione . . .

  2. #2
    Moderatore di Programmazione L'avatar di alka
    Registrato dal
    Oct 2001
    residenza
    Reggio Emilia
    Messaggi
    24,472

    Re: [C#] Errore nel metodo HttpServerUtility.Execute

    Originariamente inviato da SkyNET290897
    La classe HttpServerUtility non necessita di un costruttore, non capisco cosa sia a sollevare l'eccezione . . .
    Tutte le classi, tranne quelle "statiche", necessitano di un costruttore per poterne creare un'istanza.

    Nel tuo caso, non usi metodi statici, ma usi una variabile di tipo HttpServerUtility, pertanto hai a che fare un oggetto, che però non crei, e probabilmente non puoi nemmeno creare perché la classe è usata da ASP.NET per compiti ben specifici diversi dal tuo, per il quale credo tu possa impiegare la classe WebClient.

    Se fai una ricerca nel forum, abbiamo parlato spesso della classe WebClient.

    Ciao!
    MARCO BREVEGLIERI
    Software and Web Developer, Teacher and Consultant

    Home | Blog | Delphi Podcast | Twitch | Altro...

  3. #3
    La classe WebClient la ho studiata a fondo, è stata la prima che ho guardato ma non ho trovato metodi che possano lanciare uno script.

    L'unico modo con cui sono riuscito a lanciare lo script fatto da me è stato con il metodo Process.Start(), ma tutte le volte mi apre il browser anche se ho settato le proprietà CreateNoWindows a True e WindowStyle a Hidden.

    Mi sapete spiegare perchè i settaggi della classe non vengono presi in considerazione (ne parliamo qui o apro un altro post in proposito?)?

  4. #4
    Moderatore di Programmazione L'avatar di alka
    Registrato dal
    Oct 2001
    residenza
    Reggio Emilia
    Messaggi
    24,472
    Ma cosa intendi per lanciare uno script?

    Tu vorresti interpretare, da C#, il codice PHP, o vorresti invocare una pagina PHP ospitata su qualsivoglia server Web? :master:
    MARCO BREVEGLIERI
    Software and Web Developer, Teacher and Consultant

    Home | Blog | Delphi Podcast | Twitch | Altro...

  5. #5
    Lo script PHP è allocato nel mio spazio WEB, quello che voglio fare io è eseguirlo da codice, cioè detto terra terra, premo il bottone dal mio form C# e lo script viene eseguito.

    Lo script mi serve per modificare un file TXT sempre presente nel mio spazio WEB.

    Come dicevo prima, con il metodo Process.Start() riesco a lanciare lo script e questo fa quelle che deve fare, ma, apre il browser e questo lo voglio evitare.

    Ora, o trovo il modo di non far aprire il browser con la Process.Start() oppure devo trovare il modo di lanciare lo script da codice C#, pensavo che esistesse un metodo apposito nel Framework .NET ma non ho trovato nulla di specifico al riguardo.

  6. #6
    Moderatore di Programmazione L'avatar di alka
    Registrato dal
    Oct 2001
    residenza
    Reggio Emilia
    Messaggi
    24,472
    Ma la tua applicazione C# si trova sul server? La esegui dal server, oppure la esegui dal tuo PC?
    MARCO BREVEGLIERI
    Software and Web Developer, Teacher and Consultant

    Home | Blog | Delphi Podcast | Twitch | Altro...

  7. #7
    Eureka!!!

    Ho risolto con la tua risposta in questa discussione!

    Rispondendo alla tua domanda, l'applicazione C# la eseguo dal mio PC.

    Grazie!



  8. #8
    Moderatore di Programmazione L'avatar di alka
    Registrato dal
    Oct 2001
    residenza
    Reggio Emilia
    Messaggi
    24,472
    Originariamente inviato da SkyNET290897
    Rispondendo alla tua domanda, l'applicazione C# la eseguo dal mio PC.
    E allora, ovviamente, non hai accesso ad alcun script PHP da poter interpretare, ma puoi solamente accedere ad un server che li interpreta e li esegue, restituendoti solo il risultato, che puoi leggere attraverso WebClient, che è appunto la classe che ti avevo suggerito all'inizio.
    MARCO BREVEGLIERI
    Software and Web Developer, Teacher and Consultant

    Home | Blog | Delphi Podcast | Twitch | Altro...

  9. #9
    Ho installato sia Apache che PHP 5 sulla mia macchina, mentre per la WebClient, pensavo che il metodo DownloadData non potesse funzionare, per quello non lo ho provato . . .

    La stessa cosa è successo in modo simile con la Process.Start(), pensavo che non potesse servirmi e la ho provata solo dopo alcune ore di tentativi andati a vuoto, un pò come ultima spiaggia e, sorpresa, ha funzionato, storia delle finestre a parte.


Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.