我有一个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。
任何人都知道如何解决它? 感谢。
答案 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);
}