作为图像处理模块的一部分,我接受以下格式的网址,以便处理和缓存外部托管的图像。
http://localhost:56639/remote.axd/http://ipcache.blob.core.windows.net/source/IMG_0671.JPG?width=400&filter=comic
处理完文件后,如果我使用Response.Redirect(url, false)
将服务器重定向到有效的外部缓存网址,则服务器会返回404错误响应,引用StaticFileHandler作为错误来源。
如果文件来自本地来源,例如。
http://localhost:56639/IMG_0671.JPG?width=400&filter=comic
服务器重定向到外部网址没有问题。有人可以解释原因并提供解决方案吗?
注意:remote.axd
除了允许本地服务器拦截外部网址之外什么都不做。我使用.axd
扩展名,因为它在MVC中默认没有映射到路由。
我注意到,在查看请求路径时,http://
段被替换为http:/
。我不知道这是否会导致问题。
答案 0 :(得分:1)
因此对StaticFileHandler的引用是线索。
在HttpModule的操作之后,处理程序正在尝试处理请求。当使用本地缓存的文件时,它会找到该文件,一切正常。由于我重定向到远程URL并具有远程源,因此处理程序找不到任何内容并抛出404异常。
使用以下方法重写后,必须暂停对请求的进一步处理。