Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/282.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/asp.net-core/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 在IISExpress中获取ASP.Net内核关闭触发ApplicationsToping事件_C#_Asp.net Core_Iis Express_Kestrel Http Server - Fatal编程技术网

C# 在IISExpress中获取ASP.Net内核关闭触发ApplicationsToping事件

C# 在IISExpress中获取ASP.Net内核关闭触发ApplicationsToping事件,c#,asp.net-core,iis-express,kestrel-http-server,C#,Asp.net Core,Iis Express,Kestrel Http Server,我知道之前有一个问题,还有一个GitHub问题:它似乎在Microsoft.AspNetCore.Server.IISIntegration 1.1中得到了解决。然而,尽管有这个版本,它在IISExpress中似乎仍然不起作用(我正在测试它,让它执行Debug.WriteLine,并在ApplicationStopping和ApplicationStopping上写入日志文件)。我正在使用工具盘小部件关闭IISExpress 我不确定我是否做错了什么,IISExpress以这种方式关闭是否被支持

我知道之前有一个问题,还有一个GitHub问题:它似乎在Microsoft.AspNetCore.Server.IISIntegration 1.1中得到了解决。然而,尽管有这个版本,它在IISExpress中似乎仍然不起作用(我正在测试它,让它执行Debug.WriteLine,并在ApplicationStopping和ApplicationStopping上写入日志文件)。我正在使用工具盘小部件关闭IISExpress

我不确定我是否做错了什么,IISExpress以这种方式关闭是否被支持为触发这些事件的“优雅关闭”。看起来这可能在IIS中很好地工作,但显然您不能使用ASP.Net核心和完整IIS在本地开发,所以我想知道是否有任何方法可以在开发环境中触发这些事件进行测试

下面是Startup.cs中的代码:

public void Configure(IApplicationBuilder app, IApplicationLifetime life, IHostingEnvironment env, ILoggerFactory loggerFactory)
    {
        // other configure code here

        life.ApplicationStopping.Register(() =>
            Debug.WriteLine(">>Stopping"));
        life.ApplicationStopped.Register(() =>
            Debug.WriteLine(">>Stopped"));
    }

我有一个包含所有最新NuGet更新的应用程序,可以验证ApplicationsToping和ApplicationsToping是否在IISExpress下触发。应用程序启动似乎工作正常

我发现,如果在我的开发环境中直接调用应用程序,一切都很好

告诉你怎么做

从下拉框中选择应用程序非常简单:

我意识到这与使用IIS Express不同,但可能会帮助您解决问题


差点忘了,要调用,您需要在启动应用程序时出现的命令窗口中键入Ctrl+C。

也许您可以在从HttpApplication派生的类中使用Application\u End方法。卸载应用程序时将调用此方法。

如果您不向我们展示您正在做的事情,我们如何判断您是否做错了?很好的一点,虽然它是相当不起眼的代码,但我现在添加了它可能是一个愚蠢的问题,但您已经安装了IIS托管模块,对吗?除此之外,请确保您还从.NETCore下载页面下载了1.1运行时和SDK。除此之外,目前的信息对我们帮助不大。也可以尝试使用事件查看器应用程序日志。它更可能是与配置相关的,而不是与代码相关的,因此您无法设置调试断点。我想这是您希望做的。您看到此链接了吗?我认为您为此失去了生命。此问题与aspnet.core有关。。没有HTT应用程序,是的。仅限Ctrl+C。当使用窗口的标准[X]关闭控制台窗口时,它显然不会启动。对我来说似乎是个bug,因为我从来没有在检测控制台关闭事件时遇到过任何大问题,至少在Windows平台上是这样。。。