Come posso ottenere in modo coerente l'URL assoluto o root completo del sito indipendentemente dal fatto che il sito si trovi in una directory virtuale e indipendentemente da dove si trova il mio codice nella struttura delle directory? Ho provato ogni variabile e funzione a cui riesco a pensare e non ho trovato un buon modo.Determina l'url assoluto e completo del sito in asp.net
Voglio essere in grado di ottenere l'url del sito attuale, vale a dire http://www.example.com o se si tratta di una directory virtuale, http://www.example.com/DNN/
Ecco alcune delle cose che ho provato e il risultato. L'unico che include tutto il pezzo che voglio (http://localhost:4471/DNN441) è Request.URI.AbsoluteURI:
- Request.PhysicalPath: C: \ WebSites \ DNN441 \ Default.aspx
- Request.ApplicationPath:/DNN441
- Request.PhysicalApplicationPath: C: \ WebSites \ DNN441 \
- MapPath: C: \ WebSites \ DNN441 \ DesktopModules \ articoli \ Modelli \ Default.aspx
- RawURL: /DNN441/ModuleTesting/articoli/tabid/56/CTL/Dettagli/mid/374/ItemID/1/D efault.aspx
- Request.Url.AbsoluteUri: http://localhost:4471/DNN441/Default.aspx
- Request.Url.AbsolutePath: /DNN441/Default.aspx
- Request.Url.LocalPath: /DNN441/Default.aspx Request.Url.Host: localhost
- Request.Url.PathAndQuery: /DNN441/Default.aspx?TabId=56 & CTL = Dettagli & mid = 374 & ItemID = 1
Cheers, ha funzionato perfettamente. – Echilon
Penso che funzioni solo se la tua richiesta attuale è già alla radice. Altrimenti è relativo alla directory delle richieste correnti, non alla radice del percorso dell'applicazione del server. Ho avuto successo con: Request.Url.GetLeftPart (UriPartial.Authority) + Request.ApplicationPath –