加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程开发 > asp.Net > 正文

asp-classic – 在Integrated Pipeline中运行的经典ASP

发布时间:2020-12-16 06:58:31 所属栏目:asp.Net 来源:网络整理
导读:我正在将经典的asp应用程序(我知道,幸运的是)迁移到混合的asp.net/asp站点,似乎我无法访问Request.Form集合.就像测试一样,我这样做了: for each x in Request.Form Response.Write("br" x " = " Request.Form(x)) next 我明白了: 请求对象错误’ASP 0101:
我正在将经典的asp应用程序(我知道,幸运的是)迁移到混合的asp.net/asp站点,似乎我无法访问Request.Form集合.就像测试一样,我这样做了:

for each x in Request.Form 
    Response.Write("<br>" & x & " = " & Request.Form(x)) 
next

我明白了:

请求对象错误’ASP 0101:80004005′
意外的错误
[我的剧本],第xx行
函数返回|.

如果我将App Pool从Integrated Pipeline切换到Classic,则代码可以正常工作,但是在经典模式下运行不是.net应用程序的选项.我的未来有解决方法吗?

解决方法

在经典asp中访问Request.Form时出现意外错误是因为托管代码模块或处理程序触及了请求主体,之后本机代码无法使用它.

见http://www.asp.net/whitepapers/aspnet4/breaking-changes#0.1__Toc256770154

A managed HTTP module reads some part of the entity body. For example,a module reads Request.Form or Request.Params. This causes the entity body of the POST request to be read into managed memory. As a result,the entity body is no longer available to any native code modules that are running in IIS 7 or IIS 7.5 Integrated mode.

如果您控制托管模块,而不是让管道继续使用经典的asp处理程序,请使用带有额外http标头的Server.TransferRequest,您可以在下次执行模块时检查该标头.见这个答案https://stackoverflow.com/a/18078054/2837402

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读