URL を使用して ShDocVw オブジェクト (IE8) を介して Web ページを呼び出す Windows サービスがあります。次に、ページをチェックし、特定の結果が得られた場合は、データを読み取り、結果を返します。
これをデバッグで通常のドメイン ユーザーとして実行すると、問題なく動作します。通常のドメイン ユーザーとして Windows サービスとして実行すると、まったく別の Web ページが表示されます。Web ページからの呼び出し URL と応答 URL をデバッグまたは本番環境で確認しましたが、それらはまったく同じです! 奇妙なことに、デバッグで送り返された Web ページは、本番環境で送り返されたものとは異なります。デバッグ中のものは探している情報を提供してくれますが、製品版 (Windows サービスとして実行中) はエラーで応答します。
元の URL は別の Web ページにリダイレクトしているようです。そのため、プロセスに ShDocVw と IE を使用しています (別の方法で指示されない限り)。別のオブジェクトを使用してみましたが、それが何であったか思い出せません。
本当に奇妙なのは、プロセスがデバッグと Windows サービスの 3 つの異なる URL に対して完全に機能することですが、4 番目の URL は返された Web ページ (ただし 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;
問題が何であるかを見つける方法を知っている人、または私が間違っている可能性があることを知っている人はいますか?