gpt4 book ai didi

c# - HttpHandler 仅在文件不存在时触发

转载 作者:太空狗 更新时间:2023-10-29 20:02:12 25 4
gpt4 key购买 nike

我正在尝试创建一个 HTTP 处理程序来处理对一个文件夹的所有请求,但我只希望它在请求的文件不存在时触发(例如:请求来自文件 X,如果 X 存在我会喜欢提供文件,否则处理程序应该处理它)。

文件将只是静态内容,而不是脚本本身,我认为这会使它更容易一些,但我似乎找不到任何可以解决问题的东西......任何人有任何想法吗?我认为它可以完成,因为 IIS7 重写模块可以管理它,但我看不出如何...

编辑 澄清一下……处理程序是典型情况,它不是错误处理例程,而是实际提供适当的内容。我只希望能够将新文件作为单独的东西或作为处理程序将交付的内容的重载添加到文件夹中。

最佳答案

我最终坚持使用处理程序,而是使用以下方法解决问题:

if (File.Exists(context.Request.PhysicalPath)) context.Response.TransmitFile(context.Request.PhysicalPath);
else { /* Standard handling */ }

鉴于这么多人提倡模块和捕获异常,我觉得我应该澄清为什么我没有听取:

  1. 这是标准程序流程,因此我不喜欢使用异常来触发它的想法,除非它变得绝对必要。
  2. 这其实就是正常情况下返回的内容。 HttpModule 实际上处理典型请求而不是仅仅做一些基本的共享处理和处理边缘情况的想法似乎有点偏离。因此,我更喜欢使用 HttpHandler,因为它可以处理典型的请求。

关于c# - HttpHandler 仅在文件不存在时触发,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2269370/

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