C#IE代理检测无法在Windows服务中运行

时间:2010-04-12 22:31:40

标签: .net

这很奇怪。我在C#中编写了一个Windows表单工具来返回默认的IE代理。它的工作原理(见下面的代码片段)。我已经创建了一个使用相同代码返回代理的服务,它在我进入调试器时工作,但是当服务作为二进制代码运行时它不起作用。这必须是我无法重新创建的某种权限或上下文。此外,如果我从Windows服务调用该工具,它仍然不会返回代理信息....这似乎是以某种方式隔离到服务。我没有在事件日志中看到任何权限错误,就好像服务具有与常规Windows窗体exe完全不同的上下文。

我已经两个人都去了:

WebRequest.GetSystemWebProxy()

Uri requestUri = new Uri(urlOfDomain);
HttpWebRequest request = (HttpWebRequest)WebRequest.Create(requestUri);
IWebProxy proxy = request.Proxy;

if (!proxy.IsBypassed(requestUri)){
    Uri uri2 = proxy.GetProxy(request.RequestUri);
}

感谢您的帮助!

1 个答案:

答案 0 :(得分:0)

This article已经很老了,但仍然与Windows服务相关,尽管它不包括IE代理设置。这些设置取决于用户,因此您的问题的答案与服务的用户上下文有关。如果服务作为本地系统运行,则它将不具有与您自己的用户帐户相同的IE设置。