我正在使用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?提前谢谢!