Windows服务不发送,但Windows窗体是的

时间:2016-06-16 07:13:03

标签: c# windows windows-services webclient

我有一个Windows窗体和一个运行相同代码的Windows窗体,两者都是一样的。他们从Lan上的一台电脑上下载了一些文件(嵌入了windows7)并将其发送到选定的服务器。

问题是,如果我通过Windows窗体发送它运行良好并发送文件没有问题,但如果离开Windows服务器发送数据自动有问题,当尝试下载文件失败我尝试在一些PC上工作( Windows窗体和Windows服务)但我发现一些电脑失败(Windows窗体工作和服务失败),并且不下载文件,我看到程序中的日志,看到这失败:

- 无法连接到远程服务器。

- 远程服务器返回错误:(407)需要代理身份验证(在这种情况下,该办公室的系统具有来自互联网的所有流量的代理,但连接首先在Lan上)。

我在下一个函数中找到错误:

string xmlText = "";
// Read the file as a string
using (WebClient client = new WebClient())
{
    xmlText = client.DownloadString(url);
}

该功能从Lan PC下载XML。

任何人都知道如何解决它? 感谢。

1 个答案:

答案 0 :(得分:1)

这可能是因为您是以未知用户身份运行,需要以用户身份运行(或设置用户/密码)。

试试这个:

string xmlText = "";
// Read the file as a string
using (WebClient client = new WebClient())
{
    client.UseDefaultCredentials = true;
    xmlText = client.DownloadString(url);
}

然后在您的帐户下运行该服务。 如果您不想在您的帐户下运行,则需要在代码中设置用户和密码:

string xmlText = "";
// Read the file as a string
using (WebClient client = new WebClient())
{
    client.Credentials = new NetworkCredential("username", "password");
    xmlText = client.DownloadString(url);
}