2010-11-24 14 views
15

Acabo de crear una "Aplicación web ASP.NET en blanco". ¿Dónde está el punto de entrada?ASP.NET Entry Point?

Veo "Default.aspx" que parece ser la plantilla predeterminada que llama. "Site.Master", que creo que actúa como un archivo de diseño. "Global.asax" que parece proporcionar algunos stubs de métodos para el manejo de eventos. Y luego "Web.config", que parece tener algunas configuraciones específicas del sitio, como una cadena de conexión DB, y algunas cosas de autenticación.

Pero en ningún lugar veo "rutas" ni nada que indique que "Default.aspx" deba llamarse por defecto, o que "Global.asax" se deba usar para manejar eventos. ¿Dónde está esto especificado? ¿Está integrado en el núcleo de ASP? ¿No puedo filtrar todas las solicitudes a través de un método C# y luego delegar cómo lo hago? ¿Y devolver algún tipo de respuesta HTTP?

+0

¿Preguntaba cuál es la primera línea de código que se ejecuta cuando se inicia una aplicación web ASP.NET (toma su primera solicitud) o preguntaba qué código se golpea cuando se realiza una solicitud arbitraria al sitio? – Matt

+0

I * think * Quería saber la primera línea de código que aparece cuando aparece una nueva solicitud. Es posible que haya olvidado que ASP.NET funciona de manera diferente a una aplicación de PHP en que ASP.NET solo se inicia una vez, mientras que en PHP ejecuta todo en cada solicitud. – mpen

+2

Hay ciertas cosas que suceden en una aplicación ASP.NET solo al cargarlas y luego, las cosas que suceden en cada solicitud. Estos enlaces cubren lo que sucede en el ciclo de vida de la página para las aplicaciones ASP.NET Webforms y las aplicaciones ASP.NET MVC respectivamente -> http://msdn.microsoft.com/en-us/library/ms178472(v=vs.100). aspx, http://www.asp.net/mvc/tutorials/mvc-5/lifecycle-of-an-aspnet-mvc-5-application – Matt

Respuesta

8

creo que quería saber la primera línea de código que se golpeó cuando una nueva petición llega.

La clase HttpApplication contiene la primera línea de código de su aplicación. Su constructor es en gran medida el punto de entrada para su aplicación. From the docs:

Después de que se hayan inicializado todos los objetos de la aplicación principal, la aplicación se inicia al crear una instancia de la clase HttpApplication.

Hay dos maneras canónicas de escribir la primera línea de código que recibe el golpe para una nueva solicitud. Ambos implican crear un archivo Global.asax y manejar sus eventos.

Para manejar eventos o métodos de aplicación, puede crear un archivo llamado Global.asax en el directorio raíz de su aplicación.

Querrá manejar Application_Start y/o Application_BeginRequest.

  • Application_Start es de código que se ha golpeado en la primera petición a la aplicación. Cada vez que reiniciemos la aplicación, la siguiente solicitud ingresará aquí. Esto es por el inicio de la aplicación.
  • Application_BeginRequest es para el código que se ve afectado en cada solicitud de la aplicación. Esto es por solicitud.

Por supuesto, todo esto cambia con ASP.NET Core.

6

No hay noción de punto de entrada. La forma en que funciona es que el usuario envía una solicitud HTTP a una url y esta url envía una respuesta al usuario. En las propiedades del proyecto, puede configurar qué URL para iniciar en Visual Studio cuando acceda a F5 porque, de forma predeterminada, inicia el archivo que está editando actualmente.

También el servidor Web tiene una noción de documento es decir, por defecto si no se especifica ninguna página que se carga por defecto los documentos en el orden en que se configuran:

alt text

+0

¡Buena respuesta! Supongo que tengo que hacer otra pregunta para obtener la * solución * que quiero. – mpen

1

El archivo llamado por defecto se especifica en el IIS, generalmente es default.aspx.

+0

Bien ... ¿qué tal en el servidor de desarrollo que corro VS presionando F5? ¿Hay algún proyecto en algún lugar? – mpen

+0

No, ese servidor usa default.aspx como páginas predeterminadas (creo), pero puede seleccionar la página de inicio en Visual Studio, haga clic con el botón derecho y seleccione como página de inicio. Esa página de inicio es la que se carga cuando presiona F5 – Elph

2

De forma predeterminada, ASP.NET solo utiliza las rutas físicas de los archivos para determinar qué página mostrar. Default.aspx es el valor predeterminado porque es el archivo de inicio de su proyecto o porque está correlacionado como el documento predeterminado de su carpeta raíz en IIS.

Opcionalmente, puede utilizar los componentes de enrutamiento agregados al marco como parte de ASP.NET MVC si desea un enrutamiento personalizado. Hay una guía sobre cómo usar este here

Cuestiones relacionadas