当我使用 HttpWebRequest
并添加:
CookieContainer container = new CookieContainer();
request.CookieContainer = container;
它会在
中抛出一个Operation Timeout异常HttpWebResponse response = request.GetResponse() as HttpWebResponse;
如果我不添加 CookieContainer
,程序运行时不会出错。为什么这行不通?
最佳答案
我也遇到过这个问题。当我请求网页并将 HttpWebRequest 放入 Page_Load 函数并将 cookie 从当前页面添加到 CookieContainer 但它只是卡在那里直到超时
问题是当我第一次请求网页时 asp dot net 只是锁定了 session 以保护从不同地方同时写入的 session 。当我尝试调用 HttpWebRequest 请求同一个域相同的 Session 时,它将被阻塞直到第一页结束它的 session 锁定,同时,第一页正在等待 HttpWebRequest 结束它的工作 这两个请求只是互相等待直到超时。
好消息是我找到了解决这个问题的方法,我只是在第一页中设置了 EnableSessionState="ReadOnly",这使得我调用的第一页不会锁定 session 。 希望这可以帮助某人。
关于c# - CookieContainer 的 HttpWebRequest 操作超时,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8285500/