当服务作为LocalService帐户运行时,WebClient无法正常工作

时间:2015-05-08 11:40:46

标签: c# http service user-accounts

我有一个Windows服务,它将发布请求发送到网址:

            System.Net.ServicePointManager.Expect100Continue = false;
            using (WebClient wc = new WebClient())
            {
                wc.Headers[HttpRequestHeader.ContentType] = "application/x-www-form-urlencoded";
                string HtmlResult = wc.UploadString(url, myParameters);

                Console.WriteLine(HtmlResult);
            }

仅当服务以管理员身份运行且在控制台应用程序中运行时,此选项才有效。当以LocalService帐户运行时,我会收到超时。

我该怎么办?

2 个答案:

答案 0 :(得分:1)

我猜你的问题是不允许本地服务访问远程资源。因此,您需要使用允许使用远程资源的帐户,例如网络服务或使用适合您需要的特定权限创建的用户帐户(您可能还需要访问本地文件夹以读取/写入数据)这是最佳做法IMHO。

答案 1 :(得分:0)

在LocalService帐户下运行与网络相关的代码后,您将显示为匿名用户。因此很可能禁止访客访问您的场所。因此,使用NetworkService(专为网络人员设计)替换LocalService可能是值得的。 http://windowsitpro.com/systems-management/understanding-local-service-and-network-service-accounts