在调用HttpRequest.GetBufferlessInputStream之后不支持此方法或属性。怎么办

技术在调用HttpRequest.GetBufferlessInputStream之后不支持此方法或属性。怎么办今天就跟大家聊聊有关在调用HttpRequest.GetBufferlessInputStream之后不支持

今天,我将在调用httprequest后与您讨论不支持的方法或属性。getbuffelessinputstream。做什么可能很多人都不太懂。为了让大家更好地了解,边肖为大家总结了以下内容。希望大家能从这篇文章中有所收获。

英寸net 4.5中,WCF利用缓冲区较少的输入流来实现可伸缩性的优势。因此,当您尝试访问httpcontext . current . request . InputStream属性时,您可能会遇到以下异常,因为inputstream属性会尝试让您处理Classic流,因为它们不兼容。您可能还会看到httpcontext的另一个副作用。current.request.form参数变为空。

在调用HttpRequest.GetBufferlessInputStream之后,不支持此方法或属性。”

1.在同一个WCF项目中添加一个简单的HttpModule,它将在WCF读取之前访问每个请求的InputStream属性,这样它将强制httpcontext . request . readentitybody为“Classic”并确保兼容性。

名称空间库服务

{

public class wcfreadentitybodymodework roundmodule : ihttpmmodule

{

publicvoidDispose()

{

}

public void init(HttpApplicationContext)

{

语境。Begin request=context _ Begin request;

}

public void context _ Beginrequest(object sender,EventArgse)

{

//这将强制httpcontext . request . readentitybody为“Classic”,并确保兼容性。

stream stream=(senderashtpapplication). request . inputstream;

}

}

}2.

将以下行添加到配置模块设置中,以便在web.config中注册此模块.

system.webServer

modulesrunallmanagedmmodulesfor all requests=’ true ‘

addname=’ wcfreadentitybodymodeworkroundmodule ‘ type=’ SKWcfService。wcfreadentitybodymodeworkroundmodule ‘/

/模块

!-

若要在调试期间浏览Web应用程序根目录,请将以下值设置为“真”。

部署前将该值设置为False可以避免泄露Web应用程序文件夹信息。

directoryBrowseenabled=’true’/

/system.webServer如果您的项目无法修改,您可以将此Http模块编写在单独的程序集中,单独的GAC中,并在web.config中注册此模块.

现在尝试访问它应该成功的服务!

读完上面的内容,在调用httprequest之后,您不支持这个方法或属性。getbuffelessinputstream。我该怎么办?还有什么进一步的了解吗?如果您想了解更多知识或相关内容,请关注行业资讯频道,感谢您的支持。

内容来源网络,如有侵权,联系删除,本文地址:https://www.230890.com/zhan/38068.html

(0)

相关推荐