我应该如何使用HttpRequest.GetBufferlessInputStream?

时间:2014-02-07 19:05:52

标签: c# wcf httprequest

我在WCF服务中接收帖子数据时遇到问题。如果我尝试使用InputStream,我会得到一个例外。 “在调用HttpRequest.GetBufferlessInputStream后,不支持此方法或属性”

我相信我理解为什么会抛出这个错误,但我还没有成功解决它。关于这个问题的现有帖子指出了一些解决方法 - Visual Studio 2012 install broke my 2010 WCF project

我正在使用.Net 4.5,所以我按照帖子中建议的解决方案,但无济于事。尝试访问InputStream时仍然出错。

如果我知道如何正确处理无缓冲输入流,那对我来说真的不是问题。当我查看流的长度时,它似乎包含我发送的数据,但是当我使用StreamReader读取它时,它总是不返回任何内容。如果我只是调用Stream.Read(),它总是显示为空。

我的理解是,由于可扩展性原因,缓冲输入被无缓冲输入替换,但似乎有点不直观。有谁知道如何正确处理无缓冲输入?你能提供一个例子吗?

我试过了两个:

var result = string.Empty;
 Stream stream = context.Request.GetBufferlessInputStream();
            byte[] b = new byte[100000];
            while ((n = stream.Read(b, 0, b.Length)) > 0)
            {
                result  += n;
            }

var stream = context.Request.GetBufferlessInputStream();
var streamContent = new StreamReader(stream).ReadToEnd()

0 个答案:

没有答案
相关问题