【发布时间】:2010-11-02 16:50:46
【问题描述】:
你们的问题。 如果我通过 IIS 中的 isapi 过滤器捕获 404 错误并使用代码调用处理程序以通过将用户的 url 请求作为参数并在数据库上运行查询来重定向用户。如果多个用户同时被错误处理程序捕获,我是否会遇到进行动态服务器端重定向的问题。我相信第一次执行被终止,第二次完成,两个用户都被重定向到同一个 url。
有什么想法吗? 谢谢
【问题讨论】:
标签: iis redirect server-side
你们的问题。 如果我通过 IIS 中的 isapi 过滤器捕获 404 错误并使用代码调用处理程序以通过将用户的 url 请求作为参数并在数据库上运行查询来重定向用户。如果多个用户同时被错误处理程序捕获,我是否会遇到进行动态服务器端重定向的问题。我相信第一次执行被终止,第二次完成,两个用户都被重定向到同一个 url。
有什么想法吗? 谢谢
【问题讨论】:
标签: iis redirect server-side
我正在通过 IIS 中的 isapi 过滤器捕获 404 错误...
我不清楚您是否在编写过滤器,或者过滤器是否已经存在。我假设你是自己写的,因为这是 stackoverflow,我假设 C 或 C++,因为你说的是 ISAPI。
在那种的情况下...... ISAPI 过滤器将为每个请求传入请求获取一个HTTP_FILTER_CONTEXT。您需要构建代码以将这些内容分开;如果使用 C,则将指向该结构的指针传递给代码中的每个函数,如果使用 C++,则将其存储在对象状态中。此外,您的代码需要是线程安全的。
如果错误处理程序同时捕获了多个用户,我是否会在进行动态服务器端重定向时遇到问题?
是的,如果您不遵循编写多线程过滤器的要求。
我认为有更简单的方法来完成你想要的。 IIS allows administrators to specify URLs to deliver a "custom HTTP Error Response"。 URL 可以是 Web 服务器上的任何内容,包括动态 Web 脚本,例如用 ASPNET 或 PHP 或其他内容编写的页面。您可能希望使用 302 重定向到您的动态页面;这是一种常见的模式。无需编写 ISAPI 过滤器。
【讨论】: