Visual studio webclient出现问题:预期失败?

Visual studio webclient出现问题:预期失败?,visual-studio,httphandler,webclient,system.net.webexception,Visual Studio,Httphandler,Webclient,System.net.webexception,我有一个自定义Http处理程序,它可以处理Http POST和GET。我得到了一个独立的服务器上工作的项目,现在需要把它投入生产 using (var client = new WebClient()) { client.Credentials = CredentialCache.DefaultCredentials; client.UploadFile("serverlocation

我有一个自定义Http处理程序,它可以处理Http POST和GET。我得到了一个独立的服务器上工作的项目,现在需要把它投入生产

using (var client = new WebClient())
                {
                    client.Credentials = CredentialCache.DefaultCredentials;
                    client.UploadFile("serverlocation:port", fileToUpload);
                }

由于某种原因,现在使用
client.UploadFile(“,file”)时即强制HTTP POST

System.Net.WebException: The remote server returned an error: (417) Expectation failed.

   at System.Net.WebClient.UploadFile(Uri address, String method, String fileName)
这会是什么?我知道代码是有效的,那还有什么?也许服务器会阻止HTTP POST请求

我尝试补充:

ServicePointManager.Expect100Continue=false

但是没有成功,尽管我不能100%确定这段代码应该在哪里,我假设在我使用WebClient之前


编辑0:

我只有以下几点:

由于存在较旧的实现,该协议允许 客户机可能发送“Expect:100”的不明确情况- 继续“但未收到417(预期失败)状态 或100(继续)状态。因此,当客户端发送此 发送到源服务器(可能通过代理)的头字段,从中 从未见过100(继续)状态,客户端不应等待 在发送请求正文之前的无限期

我相信这个请求是通过一个代理进行的,这可能与这个问题有关

编辑1:

相信100 continue会出现此问题,因为使用fiddler可以准确查看我的应用程序通过
WebClient发送的内容。UploadFile
显示以下内容:

POST http://XXX.XXX.XXX.XXX:8091/file.myhandledextension HTTP/1.1
Content-Type: multipart/form-data; boundary=---------------------8ccd1eb03f78bc2
Host: XXX.XXX.XXX.XXX:8091
Content-Length: 4492
Expect: 100-continue

尽管已经放了那一行:
ServicePointManager.Expect100Continue=false在using语句之前。我认为这一行实际上不起作用。

我最后解决了这个问题,将
ServicePointManager.Expect100Continue=false

然后我检查POST请求,以确保请求中不再包含
Expect:100 continue