Edit (2/4/16): You can get URLfrom appSetting / EnvironmentVariable websiteUrl. It will also give you a custom hostname if you have one setting.
There are several ways to do this.
1. From the title HOSTNAME
, <SiteName>.azurewebsites.net. HOSTNAME <SiteName>.azurewebsites.net
var hostName = Request.Headers["HOSTNAME"].ToString()
2. WEBSITE_SITE_NAME Environment Variable
<SiteName>, .azurewebsites.net
var hostName = string.Format("http://{0}.azurewebsites.net", Environment.ExpandEnvironmentVariables("%WEBSITE_SITE_NAME%"));
3. bindingInformation applicationHost.config MWA
, IIS applicationHost.config
bindingInformation . , -
private static string GetBindings()
{
string siteName = System.Web.Hosting.HostingEnvironment.SiteName;
Microsoft.Web.Administration.ConfigurationSection sitesSection =
Microsoft.Web.Administration.WebConfigurationManager.GetSection(null, null,
"system.applicationHost/sites");
foreach (Microsoft.Web.Administration.ConfigurationElement site in sitesSection.GetCollection())
{
if (String.Equals((string) site["name"], siteName, StringComparison.OrdinalIgnoreCase))
{
foreach (Microsoft.Web.Administration.ConfigurationElement binding in site.GetCollection("bindings")
)
{
var bindingInfo = (string) binding["bindingInformation"];
if (bindingInfo.IndexOf(".azurewebsites.net", StringComparison.InvariantCultureIgnoreCase) > -1)
{
return bindingInfo.Split(':')[2];
}
}
}
}
return null;
}
2