Asp.net 使用IIS 7重定向模块或自己编写代码

Asp.net 使用IIS 7重定向模块或自己编写代码,asp.net,iis,iis-7,Asp.net,Iis,Iis 7,使用IIS重定向模块重定向与只编写自己的代码并使用Response.context有什么区别?对我来说,这并没有什么区别,它们都做相同的事情,而且在IIS中使用重定向模块更容易,因为它看起来相对来说是重定向的!与此代码在global.asax中所做的相同: app.Response.Status=“301永久移动”; app.Response.AddHeader(“位置”,newLocation) 我说的不对吗?你可以用两种不同的方法做同样的事情!IIS或代码!使用IIS只需将其放入应用程序的w

使用IIS重定向模块重定向与只编写自己的代码并使用Response.context有什么区别?对我来说,这并没有什么区别,它们都做相同的事情,而且在IIS中使用重定向模块更容易,因为它看起来相对来说是重定向的!与此代码在global.asax中所做的相同:

app.Response.Status=“301永久移动”; app.Response.AddHeader(“位置”,newLocation)

我说的不对吗?你可以用两种不同的方法做同样的事情!IIS或代码!使用IIS只需将其放入应用程序的web.config:

<httpRedirect enabled="false" destination="http://www.domainToRedirectTo.com/" exactDestination="false" httpResponseStatus="Permanent" />

好简单!exactDestination为false,因此它将根据目标的相对位置重定向


我想听听反对使用一种方法和另一种方法的论点,因为我看不到任何一种方法都有好处。两者都满足相同的目标。

你所说的方式没有区别。编码版本允许您在运行时对输入做出反应,并使用代码将用户重定向到不同的页面,例如,对于
登录.aspx
页面,这可能是重定向到
登录失败页面.aspx
登录成功完整页面.aspx
。如果只是硬编码,就没有区别了


请记住,重定向不仅仅意味着指示URL地址的永久重新定位。您可能希望将人们重定向到一条临时消息(重定向代码307)——例如,如果您为苹果公司工作,史蒂夫·乔布斯正在发表主题演讲——即,将商店重定向到“史蒂夫·乔布斯正在发表主题演讲,我们正在更新商店”页面。在本例中,与更新所有IIS服务器的配置文件相比,轻按开关并让整个web服务器场通过运行时逻辑接收更改要好得多。每个重定向都有它自己的目的。

谢谢,在这种情况下,我们希望301重定向100%的时间用于这个应用程序,因为它被移动到了一个新的域。我得到了config.update问题,但无论如何,您都必须删除或更改代码。无论它是在配置中,还是在处理程序类中,还是在global.asax中,您都必须通过代码以某种方式处理它。通过web.config,像这样的一个中心点,而不是一个类,不是会容易得多吗?我想这取决于您的部署。是的,您正在复制程序集,不需要处理web.config,但我想这只是“管理”的两种方法这个设置和这个重定向。关于web场场景非常有趣……我们有这个,但我不明白为什么仅仅通过web.config配置它并将其签入源代码管理并部署web.config就有什么大不了的!单独更换服务器成本很高(试着考虑1000台服务器);此外,我给出的示例与业务策略相关,HTTP重定向是实现许多不同方面的通用机制。