2013-08-05 22 views
5

Ich versuche, die Anwendungs-URL in C# zu bekommen. Ich habe versucht mit:C# Get Anwendung URL

HttpContext.Current.Request.ApplicationPath 

Aber das gibt mir nur "/" zurück. Ich versuche, die vollständige URL der Basis-URL der Anwendung zu erhalten, die einfach "something.com" sein kann oder auch nicht. In einigen Fällen ist es abhängig von der Umgebung "something.com/foo/bar".

Wie kann ich das erreichen?

+0

Ist Ihre Anwendung als virtuelles Verzeichnis ausgeführt wird, oder hinter einem Reverse-Proxy? 'Request.ApplicationPath' hat in der Vergangenheit immer für mich funktioniert. –

+0

Werfen Sie einen Debugger irgendwo hin und inspizieren 'HttpContext.Current.Request' und' HttpContext.Current.Request.Url'- Sie werden eine Menge nützlicher Eigenschaften finden, die Ihnen die URL viele verschiedene Wege geben - eine von ihnen wird wahrscheinlich gehen was du suchst. –

Antwort

7

Wäre die RawUrl nicht genug für Sie?

Wenn, dass Sie zu viel gibt, könnten Sie versuchen

VirtualPathUtility.ToAbsolute("~/"); 
7

Try this:

string baseUrl = Request.Url.Scheme + "://" + Request.Url.Authority + Request.ApplicationPath.TrimEnd('/'); 
+0

so viel hat gut für mich gearbeitet Request.Url.Scheme + ": //" + Request.Url.Authority. +1 dafür :) – tariq