我正在学习自我托管的网络api,owin / katana,我带着这个例子:
来源:http://pastebin.com/0hsiEsdP
我把它粘贴在pastebin上,因为在这里我一直得到"你的代码没有格式化#34;甚至在代码标签之间= \
因此,管道中有两个中间件,一个用于"记录"而另一个只是写一些东西作为回应。
当我执行它并在浏览器中打开URL时,它会打印" logging"消息两次,如下:
服务器已启动 [请求:: 1] [请求来自:: 1]
问题是:如果我只做了一次请求,它为什么要执行两次?
谢谢!
答案 0 :(得分:0)
如果您记录请求uri,请执行以下操作:
Console.WriteLine("[Request from {0} to {1}]", context.Request.RemoteIpAddress, context.Request.Uri);
您会看到实际上有两个请求:
[Request from ::1 to http://localhost:8080/]
[Request from ::1 to http://localhost:8080/favicon.ico]
第二个是获取浏览器地址栏中显示的小图标。此外,这取决于浏览器:firefox将尝试获取favicon.ico一次,然后只发出单个请求。 Chome总是试图获得favicon。
出于测试目的,您可以使用Fiddler查看http流量,看看有什么令人兴奋的事情。此外,您可以使用一些工具直接发出原始HTTP请求(Fiddler,Postman,wget),因为浏览器可以在测试时执行您不需要或不想要的东西(比如获取图标,缓存等)。 / p>