gpt4 book ai didi

c# - 将表单发布到 IIS7 中的 404 + HttpHandler : why has all POST data gone missing?

转载 作者:行者123 更新时间:2023-12-03 03:06:41 25 4
gpt4 key购买 nike

好吧,这可能听起来有点令人困惑和复杂,所以请耐心等待。

我们编写了一个框架,允许我们定义友好的 URL。如果您浏览任意 URL,IIS 会尝试显示 404 错误(或者在某些情况下显示 403;14 或 405)。但是,IIS 已设置为将任何针对这些特定错误的内容发送到 .aspx 文件。这允许我们实现一个 HttpHandler 来处理请求并执行一些操作,其中包括查找关联的模板,然后执行与其关联的任何内容。

现在,这一切都可以在 IIS 5 和 6 中运行,并且在一定程度上也可以在 IIS7 中运行 - 但有一个问题,当您发布表单时会发生这种情况。

看,当您将表单发布到不存在的 URL 时,IIS 会说“啊,但是该 url 不存在”并抛出 405“方法不允许”错误。由于我们告诉 IIS 将这些错误重定向到我们的 .aspx 页面并因此使用我们的 HttpHandler 进行处理,因此这通常不是问题。但从 IIS7 开始,所有 POST 信息在重定向到 405 后都丢失了。因此您无法再做涉及表单的最琐碎的事情。

为了解决这个问题,我们尝试使用 HttpModule,它保留 POST 数据,但似乎没有在正确的时间(需要时)初始化 session 。我们还尝试对所有请求使用 HttpModule,不仅仅是命中 404/403;14/405 的缺失请求,但这意味着像图像、css、js 等内容都由 .NET 代码处理,效率非常低。

这让我想到了实际的问题:有没有人遇到过这种情况,有没有人有任何建议或知道该怎么做才能让事情再次正常运行?到目前为止,有人建议使用微软自己的URL Rewriting module 。这有助于解决我们的问题吗?

谢谢。

最佳答案

微软为此发布了一个修补程序:

http://support.microsoft.com/default.aspx/kb/956578

关于c# - 将表单发布到 IIS7 中的 404 + HttpHandler : why has all POST data gone missing?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/102846/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com