Hola a todos, parece haber encontrado una discrepancia al probar aplicaciones ASP.NET localmente en el servidor web incorporado con Visual Studio 2008 (Cassini).¿Por qué Request ["host"] == "dev.testhost.com:1234" mientras que Request.Url.Host == "localhost"
He creado una serie en mi máquina local asociando dev.testhost.com con 127.0.0.1, ya que tengo una aplicación que necesita para cambiar su apariencia dependiendo del encabezado de host utilizado para llamar eso.
Sin embargo, cuando solicito mi aplicación de prueba usando http://dev.testhost.com:1234/index.aspx
, el valor de Request.Url.Host
es siempre "localhost"
. Mientras que el valor de Request.Headers["host"]
es "dev.testhost.com:1234"
(como yo esperaría que sean ambos).
No me preocupa que el segundo valor incluye el número de puerto, pero yo soy poderoso confundido en cuanto a por qué los nombres de host son completamente diferentes! ¿Alguien sabe si esto es un problema conocido, o por diseño? ¿O estoy siendo un idiota?
prefiero usar
-Se ha eliminado debido a que puede causar confusión! - SamRequest.Url.Host
, ya que evita tener que pelar hacia fuera el número de puerto al probar ...
De la documentación de MSDN en que parece que el Request.Url debe estar preocupado con la solicitud como se envía al servidor. Citando de http://msdn.microsoft.com/en-us/library/system.web.httprequest.aspx ... > ** HttpRequest Class ** > Permite a ASP.NET leer los valores HTTP enviados por un cliente durante una solicitud web. Que no es lo que parece estar haciendo cuando se ejecuta en Cassini ... Gracias por las respuestas hasta ahora, pero realmente no estoy convencido de que exista una buena razón para informar el nombre de host de manera diferente para la misma solicitud objeto ... –