我正在学习自托管web api,owin/katana,我带了这个例子:
来源:http://pastebin.com/0hsiEsdP
我把它贴到了pastebin上,因为在这里我总是看到“你的代码没有格式化”,甚至在代码标签=\
因此,有两个中间件在流水线中,一个用于“日志记录”,另一个只是写一些东西作为响应。
当我执行它并在浏览器中打开url时,它会打印两次"logging“消息,如下所示:
服务器已启动来自::1的请求
问题是:如果我只做了一个请求,为什么它会执行两次?
谢谢!
发布于 2015-03-28 13:36:39
如果您记录请求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]第二个是获取浏览器地址栏中显示的小图标。此外,这是依赖于浏览器的:火狐将尝试获取favicon.ico一次,然后将只发出单个请求。Chome总是想要得到favicon。
出于测试目的,您可以使用Fiddler来查看http流量,看看到底发生了什么。此外,您还可以使用一些工具直接发出原始HTTP请求(Fiddler、Postman、wget),因为浏览器可以在测试时执行您不需要或不想做的事情(如获取收藏夹图标、缓存等)。
https://stackoverflow.com/questions/29313260
复制相似问题