从网站根目录进行 ASP.Net 路由
假设我有一个网站 www.abc123.com。确定用户何时尝试访问 www.abc123.com/section1 和 www.abc123.com/otherStuff 等页面的最佳方法是什么?
我做了一些研究,发现当用户访问 www.abc123.com/Default.aspx/section1 时 Request.PathInfo 工作得很好,但如果不包含 Default.aspx 部分,它就无法工作在网址中。
现在,当我使用 VS2k8 中的内置 IIS 服务器和已发布的网站尝试执行此操作时,得到的只是 404 错误。如果这些事情很重要的话,我正在使用 ASP.Net 3.5 和 IIS 6。
Say I have a website www.abc123.com. What would be the best way to determine when users attempt to access pages like www.abc123.com/section1 and www.abc123.com/otherStuff ?
I've done some research and found that Request.PathInfo works quite well when the user visits www.abc123.com/Default.aspx/section1 but it does not work without having the Default.aspx portion included in the URL.
Right now all I get are 404 errors when attempting this with the built in IIS server in VS2k8 and on a published website. I'm using ASP.Net 3.5 and IIS 6 if those things matter.
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
这在 IIS7 中效果更好,因为它通过 ASP.NET 管道路由所有请求(不仅仅是对 ASP.NET 资源的请求)。
在 IIS6 中,我认为最好的选择是编写一个 HTTPModule。我认为 IIS 通过 HTTPModule 管道传递所有请求(不仅仅是对 ASP.NET 资源的请求)。
在 IIS7 中,您只需使用应用程序 Global.asax 来挂钩 Application_BeginRequest 事件。
This works better in IIS7 since it routes all request through the ASP.NET pipeline (not just requests for ASP.NET resources).
In IIS6, I think your best bet would be to write an HTTPModule. I think IIS passes all requests (not just requests for ASP.NET resources) through the HTTPModule pipeline.
In IIS7, you can just use your applications Global.asax to hook into the Application_BeginRequest event.
我在 IIS 6 上运行 3.5,还有一些事情要做,但可以完成。一篇文章已经介绍了这一点,请查看 IIS 6 上的 ASP.NET 路由。
I am running 3.5 on IIS 6 and there are a few things to do, but it can be done. A post already covers this, look at ASP.NET routing on IIS 6.