为什么DNX运行代码两次

时间:2016-02-25 22:40:44

标签: c# .net dnx

我想将我的框架移植到新的.net核心,所以我创建了一个空的应用程序,添加了一个静态成员来感受行为,为每个请求增加一个int,但它运行两次,一次为请求,并在请求后立即,所以而不是获得1,2,3,4 ...... 我得到1,3,5,7 ......

public class Startup
{
    // This method gets called by the runtime. Use this method to add services to the container.
    // For more information on how to configure your application, visit http://go.microsoft.com/fwlink/?LinkID=398940
    public void ConfigureServices(IServiceCollection services)
    {      
    }

    // This method gets called by the runtime. Use this method to configure the HTTP request pipeline.
    public void Configure(IApplicationBuilder app)
    {
        app.UseIISPlatformHandler();

        app.Run(async (context) =>
        {
            state++;
            await  context.Response.WriteAsync(state.ToString()); 
        }); 
    }

    public static int state;

    // Entry point for the application.
    public static void Main(string[] args) => Microsoft.AspNet.Hosting.WebApplication.Run<Startup>(args);
}

1 个答案:

答案 0 :(得分:8)

猜测:请查看例如“网络”标签。 Chrome(根据您的结果判断,您可能已经在Chrome中测试过了)。你可能会发现你确实有两个请求:你期望的那个 - 加上一个用于favicon.ico的请求。而且你的应用程序正在为这两者提供服务。