Windows 服务中的 C#-WebRequest

发布于 2024-07-30 02:00:54 字数 229 浏览 4 评论 0原文

我目前正在开发一个 Windows 服务来在后台下载一些电子邮件。 为了方便测试,该服务的核心也可以在独立的应用程序中运行。 下载邮件(服务和独立)时没有问题,但运行服务时我无法获得 WebRequest(所有内容都可以在独立应用程序中找到)。 我知道,Windows 服务受到本地系统帐户的限制 - 但有没有办法在不手动更改服务用户的情况下使用 (Http-)WebRequest。

提前致谢, 伯特

I'm currently developing a Windows Service to download some emails in the background. For easy testing, the core of this service can be run in a standalone application, too.
There's no problem while downloading the mails (service and standalone) but I'm not able to get a WebRequest when running the service (everything's find in the standalone app).
I know, Windows Services are limited by the local system account - but is there a way to work with (Http-)WebRequest without changing the service-user manually.

Thanks in advance,
Bert

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

紫﹏色ふ单纯 2024-08-06 02:00:54

您是否尝试禁用代理?

我遇到了同样的问题,并将代理设置为 null 修复了超时。

HttpWebRequest request = (HttpWebRequest)WebRequest.Create(Url);
request.Proxy = null; // bypass autodetect proxy

当您作为独立应用程序运行时,将使用您的帐户代理设置。
当作为服务运行时,将使用本地服务帐户并使用默认代理设置。

您也可以尝试添加断点并查找代理字段
用你的调试器。 这将使您更好地了解“正在运行的服务上下文”

System.Diagnostics.Debugger.Break();

Did you try disabling proxy ?

I had the same issue and setting proxy to null fixed the Timeouts.

HttpWebRequest request = (HttpWebRequest)WebRequest.Create(Url);
request.Proxy = null; // bypass autodetect proxy

When you run as standalone application, your account proxy settings will be used.
When runned as Service, Local Service Account is used and default proxy settings are used.

You can also try to add a breakpoint and lookup the proxy field
with your debugger. This will gives you a better view of the "running Service context"

System.Diagnostics.Debugger.Break();
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文