c# .net asp.net visual-studio global-asax

c# - ¿Dónde está global.asax.cs en Visual Studio 2010?



.net asp.net (7)

Ambos archivos son iguales "global.asax" se relaciona con el sitio web y "global.asax.cs" se relaciona con la aplicación web. Los estándares de codificación son iguales en ambos.

Ya no tengo un código de clase de aplicación global detrás de mis plantillas instaladas. Todo lo que tengo es Global.asax. Me resulta más cómodo trabajar con Global.asax.cs .

  1. ¿Por qué no lo veo más?
  2. ¿Cómo volver a crear Global.asax.cs?

En realidad, en el sitio web estándar de VS 2010, no hay un código detrás del archivo por diseño para Global.asax. ¿Entonces lo que hay que hacer? Tienes que usar el modelo de código en línea como este.

<%@ Application Language="C#" %> <%@ Import Namespace="System.Web.Routing" %> <script Language="C#" RunAt="server"> void Application_Start(object sender, EventArgs e) { } void Application_End(object sender, EventArgs e) { } void Application_Error(object sender, EventArgs e) { } void Session_Start(object sender, EventArgs e) { } void Session_End(object sender, EventArgs e) { } </script>


Esto se debe a que usted creó un sitio web en lugar de una aplicación web. Le recomendaría que use un modelo de aplicación web precomipulado, pero si necesita usar un sitio web, podría hacer lo siguiente:

~/Global.asax :

<%@ Application CodeFile="Global.asax.cs" Inherits="AppName.MyApplication" Language="C#" %>

~/Global.asax.cs :

namespace AppName { public partial class MyApplication : System.Web.HttpApplication { protected void Application_Start() { } } }

Ahora vuelve a abrir tu sitio en VS.


No necesita crear una nueva clase de biblioteca glabal, ya que cuando cree una nueva aplicación web o sitio web, su aplicación ya tendrá un elemento llamado global.asax.cs en su explorador de soluciones.


Presione Ctrl + Shift + A y agregue la clase de aplicación global de la lista


Sí, la respuesta de @ Darin es correcta, el archivo cs / vb se puede ver en la aplicación web, pero en el sitio web no puede tener un archivo cs / vb separado.

Global.asax no tiene un archivo cs, pero puede escribir código ....

<script runat="server"> void Application_Start(object sender, EventArgs e) { // Code that runs on application startup } </script>


Preámbulo

No pude entender bien la respuesta de Darin, ya que no cumple con los estándares con el nombramiento de la clase mundial, con el debido respeto. Necesitaba una solución para el VS2005, no para el 2010, pero estoy seguro de que esta solución funcionará igual de bien.

Agregando el archivo CodeBehind para Global.asax en asp.net 2.0

Elimine cualquier archivo Global.asax y Global.cs actual o intente solucionarlo.

Ok, una vez que se haya ido, vaya a la carpeta raíz de su proyecto, haga clic con el botón derecho y elija Agregar nuevo elemento ...

Seleccione la Clase Global y haga clic en Aceptar

Ahora vuelva a la carpeta raíz, haga clic con el botón derecho y elija una nueva Clase

Nombra esta clase - Global.cs

Y sí, permite que se guarde dentro de la carpeta app_code . NO diga NO y permita que se coloque en la carpeta raíz. Debe estar en la carpeta app_code.

Edite el archivo Global.asax y corte (corte / pegue) el código dentro de la etiqueta <script> . El archivo debería tener este aspecto y agregar la etiqueta Heredar ...

<%@ Application Language="C#" Inherits="Global" %> <script runat="server"> //do not put any code here </script>

Vaya al archivo global.cs en app_code y pegue el código que cortó del archivo global.asax.

El archivo global.cs en app_code ahora debería tener este aspecto ...

/// <summary> /// Summary description for Global /// </summary> public class Global : System.Web.HttpApplication { public Global() { // // TODO: Add constructor logic here // } void Application_Start(object sender, EventArgs e) { // Code that runs on application startup } void Application_End(object sender, EventArgs e) { // Code that runs on application shutdown } void Application_Error(object sender, EventArgs e) { // Code that runs when an unhandled error occurs } void Session_Start(object sender, EventArgs e) { // Code that runs when a new session is started } void Session_End(object sender, EventArgs e) { // Code that runs when a session ends. // Note: The Session_End event is raised only when the sessionstate mode // is set to InProc in the Web.config file. If session mode is set to StateServer // or SQLServer, the event is not raised. } }

Ahora tenemos el archivo Global.asax y el código detrás del archivo Global.asax.cs con un nombre de clase. Al hacer esto, podemos continuar y acceder a la variable estática en cualquier lugar del sitio web.