2013-10-26 4 views
0

나는 이것이 어떻게 100 % 작동하는지 이해하지 못하는 "Hello World"앱을 호스팅했다. 나는이 응용 프로그램 app.Run에 정의 된 Func로하고있어 각 요청에 대해 왜 내 AppFunc는 각 요청에 대해 두 번 호출됩니까?

namespace HelloOwin 
{ 
    using System; 
    using Microsoft.Owin.Hosting; 
    using Owin; 
    using AppFunc = System.Func<System.Collections.Generic.IDictionary<string, object>, System.Threading.Tasks.Task>; 

    class Program 
    { 
     static void Main(string[] args) 
     { 
      using(WebApp.Start<Startup>(url: "http://localhost:9765/")) 
      { 
       Console.ReadLine(); 
      } 
     } 
    } 

    public class Startup 
    { 
     public void Configuration(IAppBuilder app) 
     { 
      app.Run(context => 
      { 
       var task = context.Response.WriteAsync("Hello world!"); 
       return task; 
      }); 
     } 
    } 
} 

두 번, 왜 그렇게 실행?

+3

브라우저를 사용하여 요청하시는 것입니다. 때로는 브라우저가 fav.ico 파일에 두 번째 요청을 보내면 appfunc가 두 번 호출되는 이유가 될 수 있습니다. 정확한 이유를 알기 위해서는 app.Run()에서 각 요청에 대한 요청 경로를 인쇄 해보십시오. 예를 들어 context.Request.Path.Value를 인쇄하여이를 수행 할 수 있습니다. – Praburaj

+0

그 이유가 들리 네요. 나중에 다시 확인하겠습니다. 감사. –

답변

0

초기화 초기화 호출은 시작시 configureapp을 호출하기 전에 실행하려는 일부 코드를 의미합니다. 이 작업을 필요로하는 작업을 수행하거나 일부 로깅은 실제로 요구 사항에 따라 다릅니다.

관련 문제