我有一个 Windows 服务,它通过带有 URL 的 ShDocVw 对象 (IE8) 调用网页。然后它检查页面,如果它得到某个结果,它会读取数据然后返回结果。
当我在调试中运行它并作为我的普通域用户时,一切都很顺利。当我将它作为 Windows 服务作为普通域用户运行时,它给了我一个完全不同的网页。我已经检查了网页中的调用 URL 和响应 URL,在调试或生产中,它们完全一样!奇怪的是,在调试中发回的网页与在生产中发回的网页不同。调试中的那个为我提供了我正在寻找的信息,但生产版本(作为 Windows 服务运行)响应错误。
原始 URL 似乎正在重定向到另一个网页,这就是我使用 ShDocVw 和 IE 进行该过程的原因(除非有人另有说明)。我确实尝试过使用不同的对象,但我不记得那是什么了。
真正奇怪的是,该过程完美地适用于调试和 Windows 服务中的 3 个不同 URL,但第四个 URL 不同,它返回的网页(但具有相同的 URL)!
代码类似于:
InternetExplorer objIE = new InternetExplorer();
objIE.Navigate(sService, ref objEmpty, ref objEmpty, ref objEmpty, ref objEmpty);
while (objIE.Busy || (objIE.ReadyState.ToString() != "READYSTATE_COMPLETE"))
{
System.Threading.Thread.Sleep(1000);
if (i == I_TIMEOUT)
{
break;
}
i++;
}
mshtml.HTMLDocument objDocument = (mshtml.HTMLDocument)objIE.Document;
有谁知道如何找出问题所在或知道我可能做错了什么?