无法使用传输模式获取HTTP标头是流式传输

时间:2013-09-26 17:34:25

标签: c# wcf iis-7.5 multipartform-data

我正在使用IIS 7.5和.NET 4.5开发WCF REST Web服务。

接口文件具有以下声明:

[OperationContract(Action = "PutDataFile", IsOneWay = true)]
[WebInvoke(Method = "POST", UriTemplate = "file")]
void PutDataFile(Stream fileContents);

代码是这样的:

public void PutDataFile(Stream fileContents)

当我从客户端执行Multipart POST时,流fileContents是这样的:

------------------------------b64bd2de2e40
Content-Disposition: form-data; name="UploadTest.txt"; filename="UploadTest.txt"
Content-Type: application/octet-stream

...

------------------------------b64bd2de2e40--

但是,如果在服务器端,我这样做:

String contentType1 = WebOperationContext.Current.IncomingRequest.ContentType;
String contentType2 = WebOperationContext.Current.IncomingRequest.Headers[HttpResponseHeader.ContentType];
WebHeaderCollection headers = WebOperationContext.Current.IncomingRequest.Headers;

所有这些变量都为空。我查看了使用WireShark的流量,并且HTTP请求标头位于传输中,特别是Content-Type标头。为什么这些头变量为null?提前谢谢!

0 个答案:

没有答案