在网上搜索是因为默认使用代理。需要在webapi的配置文件中设置:
<system.net>
<defaultProxy enabled="false" useDefaultCredentials="false">
<proxy></proxy>
<bypasslist></bypasslist>
<module></module>
</defaultProxy>
</system.net>
但是,也没有得到改进。求助!!!
有可能是webapi首次启动比较慢。
首次启动时间应该不至于超过5s吧,但是第一次访问超过了5s。
@CCH叔叔: 这个就不好说了。可以尝试用其他方式访问web api,来确认问题。比如Chrome插件 “Rest Client”
@幻天芒: 直接通过url地址访问,第一次需要6s,第二次需要3s,第三次只需要几百毫秒了,这是因为首次启动慢吗?
@CCH叔叔: 如果每次测试都这样,那就建议你打印日志,来查看每个步骤的耗时了。
@幻天芒: 我打了日志了,webapi中执行完成操作只要几十毫秒。
@CCH叔叔: 数据很大?你chrome看下http请求,看一下每个阶段的耗时。
@幻天芒: 返回的JSON数据,64kb。等待响应用了4.54s。我现在改成了在代码中设置代理为空。
var handler = new HttpClientHandler())
handler.Proxy = null;
@CCH叔叔: 这个只能一步一步测试了。看来dns解析时间,然后看看是不是json序列化慢,还可以写个更简单,返回string的api测试下。
@幻天芒: json序列化只用3ms,dns解析只用了1ms,全部时间都花在了等待响应上
@CCH叔叔:
返回字符串都用了5.12s
@CCH叔叔: 换个请求呢~换个浏览器呢?不用HttpClientHandler,用WebClient呢。只能各种试验了。
@幻天芒: 直接url地址访问,就没有用HttpClientHandler。
@CCH叔叔: 看来是webApi那块的问题。检查下初始化代码吧。没有代码,我也没啥好办法了。
@幻天芒: 那只能我自己找找问题所在了
@CCH叔叔: 是的,大概就是测试,将问题锁定在最小的部分。然后再去深究。