Cuando se inicia la aplicación web, no se está manejando ninguna solicitud HTTP.
Es posible que desee manejar definir el método Application_BeginRequest (Object Sender, EventArgs e) en el que está disponible el contexto de solicitud.
Editar: Aquí es un ejemplo de código inspirado en el blog de la Mike Volodarski que Michael Shimmins vinculada a:
void Application_BeginRequest(Object source, EventArgs e)
{
HttpApplication app = (HttpApplication)source;
var host = FirstRequestInitialisation.Initialise(app.Context);
}
static class FirstRequestInitialisation
{
private static string host = null;
private static Object s_lock = new Object();
// Initialise only on the first request
public static string Initialise(HttpContext context)
{
if (string.IsNullOrEmpty(host))
{
lock (s_lock)
{
if (string.IsNullOrEmpty(host))
{
var uri = context.Request.Url;
host = uri.GetLeftPart(UriPartial.Authority);
}
}
}
return host;
}
}
de verificación del puerto – TalentTuner
Consulte también http://stackoverflow.com/a/578083/12484 para obtener una forma más clara de obtener el esquema + host + puerto de una URL (una vez que tenga una). –
Parece que está ejecutando en modo integrado, no clásico (que creo que está ejecutando en su local). El problema es que Request no está disponible en Application_Start en IIS7. Eche un vistazo a: http://mvolo.com/blogs/serverside/archive/2007/11/10/Integrated-mode-Request-is-not-available-in-this-context-in-Application_5F00_Start.aspx Which explain muy bien –