2011-02-09 11 views
6

Ho solo bisogno di creare un server web estremamente semplice che mi consenta di andare a http://1.2.3.4:8080 e di sfogliare un elenco di file in C: \ web o qualcosa del genere.C# NET Server Web HTTP.SYS

Ho trovato questo http://mikehadlow.blogspot.com/2006/07/playing-with-httpsys.html che sembra perfetto ma mi sono imbattuto in un paio di domande.

1) Quando sostituisco l'IP con * o + come dice la documentazione, ottengo errori di accesso negati in system.dll. Quando uso localhost o il mio IP locale funziona correttamente. Perchè è questo? Mi piacerebbe potenzialmente poterlo associare a uno specifico indirizzo IP su macchine che ne hanno più di una.

2) Probabilmente mi manca qualcosa, ma come si specifica la directory principale in cui si trovano i file che sta servendo con questo codice?

+0

Hai contattato il blogger? Hai lasciato un messaggio sul suo blog? –

+1

@Serge - appTranslator: Perché dovrebbe farlo? 'HttpListener' è una classe .NET e la domanda è perfettamente valida qui su SO. – jgauffin

risposta

2

re 1: perché non si dispone delle autorizzazioni per registrare questo URL. Usa "http aggiungi urlacl2 per registrare i permessi per il tuo utente (come amministratore) per rendere l'associazione.Ad esempio: http aggiungere urlacl url = http: // +: 8080/user = DOMINIO \ UserName

Ri 2: Non. Il codice è praticamente il tuo codice.Http.sys non legge da un file system - è un driver.L'applicazione deve leggere i file e rispondere alla richiesta

+0

+1. Anche se su win 7, avevo bisogno di eseguire "netsh http", quindi "aggiungi urlacl url = ...". Errore di battitura? –

0

Questo potrebbe essere un po 'eccessivo per quello che vuoi, ma controllare il progetto server aspNETserve web.

è open source, in modo per lo meno è possibile sfogliare il codice per ottenere alcune idee.

0

So che questo non ti aiuta con i tuoi problemi di codice, ma perché reinventare la ruota! Penso che si dovrebbe guardare con IIS Express, come penso che potrebbe soddisfare le vostre esigenze bene:

http://learn.iis.net/page.aspx/868/iis-express-overview/

IIS Express è un eseguibile standalone in grado di fornire tutte le funzionalità necessarie. Funzionerà anche su Windows XP e versioni successive.

+0

Scoperta interessante, non sapevo di IIS Express. Grazie. –

+0

E se hai bisogno di un server web commerciale, completamente gratuito, utilizzato da milioni e milioni in tutto il mondo, puoi installare Apache. – Icarus