标签: global-asax

什么是System.Web.httpApplicationFactory类?我在调用堆栈中看到它,但在框架中找不到它

我有一个Application我的global.asax继承自的类.该类有这种方法:

protected void Application_Start(object sender, EventArgs e)
{
    // ...
}
Run Code Online (Sandbox Code Playgroud)

在我的理解中,这基本上是一个自动添加到事件的事件处理程序(基于方法名称[*]).我试图找出确切的事件,所以我在方法中放了一个断点并检查了调用堆栈:

Foo.DLL!Foo.Application.Application_Start(object sender = {System.Web.HttpApplicationFactory},System.EventArgs e = {System.EventArgs})

发件人是System.Web.HttpApplicationFactory,但我无法使用Visual Studio 2008中的对象浏览器或MSDN库网站上找到该类.

我在哪里可以找到有关此课程的更多信息?

谢谢!


[*]将它与Application_BeginRequest(object sender, EventArgs e)方法进行比较,该方法作为处理程序添加到类的BeginRequest事件中System.Web.HttpApplication.

c# asp.net events global-asax

2
推荐指数
1
解决办法
2588
查看次数

global.asax和经典ASP?

现在请原谅我这是一个愚蠢的问题 - 但是......在我的ASP.NET应用程序中,我有一个global.asax文件可以捕获错误并通过电子邮件向我发送详细信息.'可以'我把global.asax放在经典ASP文件的根目录中,如果有ASP错误,它会触发global.asax吗?

再次抱歉,如果这是一个愚蠢的问题..如果没有任何想法如何我可以为经典ASP重新创建这样的东西?

asp.net global.asa asp-classic global-asax

2
推荐指数
1
解决办法
1684
查看次数

Asp.NET Global.asax - 应用程序生命周期

我正在使用Visual Studio 2005,并直接使用其开发应用程序服务器从其中运行我的应用程序.

如果我在Application_Start中设置断点并在Session_Start中设置一个断点,则首先到达后者,我真的认为它应该是另一种方式.

有什么想法吗?

asp.net global-asax

2
推荐指数
1
解决办法
7544
查看次数

如何将会话值设置为空字符串?

会话启动时如何在Global.asax页面事件中将Session值设置为空("")字符串?可以请任何帮助我.

c# asp.net session-variables global-asax

2
推荐指数
1
解决办法
5547
查看次数

从 global.asax 存储和检索全局变量

我有一个 ASP.NET 项目的作业,该项目处理从 global.asax 文件存储和检索全局变量。

我的老师给了我这部分来定义变量:

Application.Add("Name", "Andrew");
Run Code Online (Sandbox Code Playgroud)

但在那之后,他有点让我悬而未决。所以我想知道是否有人愿意为我指出处理这些全局变量的正确方向。具体来说,用于在我的应用程序的不同页面中调用变量。

asp.net global-asax

2
推荐指数
1
解决办法
5141
查看次数

通过global.asax从外部类获取web.config请求

我的Web应用程序将外部类库用于我在许多地方使用的某些过程。我想添加到库中的一件事是此配置程序类,该类允许我加密web.config文件的某些部分。

现在,我从中调用类global.asax,它会编译,并且intellisense没有任何问题,但是在执行Web应用程序时出现此错误:

在这种情况下请求不可用

我该如何解决?

public class configurator {
private Configuration _webconfig;
public const string DPAPI = "DataProtectionConfigurationProvider";

public Configuration webconfig {
    get { return _webconfig; } 
    set { _webconfig = webconfig; } 
}

public configurator() {
    webconfig = WebConfigurationManager.OpenWebConfiguration(HttpContext.Current.Request.ApplicationPath);
}

public void ProtectSection(string sectionName, string provider = DPAPI) {
    ConfigurationSection section = webconfig.GetSection(sectionName);

    if (section != null && !section.SectionInformation.IsProtected) {
        section.SectionInformation.ProtectSection(provider);
        webconfig.Save();
    }
}

public void EncryptConnString(string protectionMode) {
    ConfigurationSection section = webconfig.GetSection("connectionStrings");
    section.SectionInformation.ProtectSection(protectionMode);
    webconfig.Save();
}

public void …
Run Code Online (Sandbox Code Playgroud)

c# web-config global-asax

2
推荐指数
1
解决办法
599
查看次数

在Global.asax.cs中获取客户端IP地址-可以吗?

当然,这Request.UserHostAddress办法是伟大的,但在Application_Start()Request对象还不存在。

我想先通过用户的IP猜测用户的位置-一次-当他/她进入网站时,并为其设置默认语言环境。然后,我将在其他地方进行操作。

我认为,必须有被否决的事件Global.asax,其Request存在于它,但是我无法找到该事件...

确实,任何其他技巧都将受到赞赏...

更新

实际上,我正在开发一个多语言的网站,并MaxMind GeoIP用来通过其IP获取用户所在的国家。因此,我想找到一种方法,以便当用户进入网站时(仅也是第一个请求),我检索他/她的国家/地区并将其存储在Session或全局变量中。

我知道我可以在其他任何地方实现我的目标,Request.UserHostAddress而且我也没有任何问题-对于这个小型应用程序,每个请求的一行开销根本不是问题。

但是我想知道是否有可能只设置一次全局变量...!?!

c# ip global-asax asp.net-mvc-4

2
推荐指数
1
解决办法
5215
查看次数

不会调用Global.asax的Application_Start方法

我有一个托管在我的本地IIS(而不是Express)上的WCF Web服务.我在其根目录中包含了一个Global.asax,它应该在那里.由于我使用Ninject与WCF扩展,类全球扩展,而不是一个HttpApplication NinjectHttpApplication(如看到这里).另外,我正在使用AutoMapper库来规避编写无聊的样板代码.出现这个问题的原因是我没有调用我为配置AutoMapper定义的静态方法,导致AutoMapper在调用Mapper.Map()时抛出异常.静态方法的调用是在Global.asax的Application_Start()方法中定义的,因为我希望每个Web服务的生命周期执行一次这些映射.顺便说一句,Ninject的CreateKernel()方法被调用就好了.我在这里错过了什么吗?我已经尝试过调试它,即使我已经将调试器附加到w3wp.exe并尝试在其正文中调用一个显式的Debugger.Break()调试,它也没有达到断点.

到目前为止它是这样的:

Global.asax中

<%@ Application Codebehind="Global.asax.cs" Inherits="MyApp.WebHost.Global" Language="C#" %>
Run Code Online (Sandbox Code Playgroud)

的Global.asax.cs

public class Global : NinjectHttpApplication
{
    protected override IKernel CreateKernel()
    {
        IKernel kernel = new StandardKernel();

        /* various bindings */

        return kernel;
    }

    protected void Application_Start(object sender, EventArgs e)
    {
        AutoMapperConfig.RegisterMappings();
    }
    /* rest of Global.asax methods (Session_Start, Application_BeginRequest, etc.) with empty bodies */
Run Code Online (Sandbox Code Playgroud)

RegisterMappings方法

public static class AutoMapperConfig
{
    public static void RegisterMappings()
    {
        /* multiple calls to Mapper.CreateMap() */

        Mapper.AssertConfigurationIsValid();
    }
}
Run Code Online (Sandbox Code Playgroud)

Svc文件标记

<%@ …
Run Code Online (Sandbox Code Playgroud)

wcf ninject automapper global-asax

2
推荐指数
1
解决办法
1293
查看次数

ASP.NET 哨兵配置

我有一个 ASP.NET MVC (4.6.1) 网站,我们正在尝试使用 Sentry 服务对其进行监控。

根据安装文档,它只是说尽早初始化 Sentry,但他们示例的结构让我有理由怀疑是否没有更多内容。在我的 Gloabl.asax.cs 文件中,我调用包含 Sentry 初始化的自定义模型类。这是该课程的副本:

public class SentryModel
    {
        public static void Configure()
        {
            var environment = ConfigurationManager.AppSettings["Environment"];

            //escape the method if we are in a development environment
            if (environment.Equals("development", StringComparison.CurrentCultureIgnoreCase))
                return;

            Assembly web = Assembly.GetExecutingAssembly();
            AssemblyName webName = web.GetName();
            string myVersion = webName.Version.ToString();
            string dsn_data = ConfigurationManager.ConnectionStrings["Sentry"].ConnectionString;

            using (SentrySdk.Init(o =>
            {
                o.Dsn = new Dsn(dsn_data);
                o.MaxBreadcrumbs = 50;
                o.Debug = true;
                o.Environment = environment;
                o.Release = myVersion;
                o.AttachStacktrace = true;
            })) …
Run Code Online (Sandbox Code Playgroud)

.net asp.net-mvc global-asax sentry

2
推荐指数
1
解决办法
3021
查看次数

如何以编程方式注册带参数化构造函数的控制器?(在温莎城堡 - ASP.NET MVC)

我想在Global.asax.cs中以编程方式注册控制器.使用MvcContrib.Castle.WindsorControllerFactory

private static IWindsorContainer _Container;

protected virtual void InitializeWindsor()
        {
            try
            {
                if (_Container == null)
                {
                    _Container = new WindsorContainer();
                    ControllerBuilder.Current.SetControllerFactory(new MvcContrib.Castle.WindsorControllerFactory(_Container));

                    RegisterActiveRecord();
                    RegisterRepositories();
                    RegisterServices();  
                    RegisterControllers();
                    RegisterComponents();
                }
Run Code Online (Sandbox Code Playgroud)

我已经做到了

 private void RegisterControllers()
        {
            try
            {
                _Container.Register(
                    AllTypes.Of<IController>()
                    .FromAssembly(typeof(HomeController).Assembly)
                    .Configure(c => c.LifeStyle.Transient)
                    );
Run Code Online (Sandbox Code Playgroud)

它适用于具有默认构造函数的所有控制器.但是,我有一个带参数化construtor的控制器(LoginController).

public class LoginController : Controller
    {
        private IUser _User;

        public LoginController(IUser objUser)
        {
            _User = objUser;
        }
Run Code Online (Sandbox Code Playgroud)

当我尝试在浏览器中查看它时(http:// localhost:2011/Login),它会给我以下错误.

**No parameterless constructor defined for this object**
Stack Trace: 
[MissingMethodException: No parameterless constructor defined for …
Run Code Online (Sandbox Code Playgroud)

asp.net-mvc configuration controller castle-windsor global-asax

1
推荐指数
1
解决办法
4153
查看次数