我的 WebApplication 我在这里有一个 ASPX WebForms 页面:
〜/ ASPWebforms / MyFolder / Default.aspx
如果我使用这段代码:
public static void RegisterRoutes(RouteCollection routes)
{
routes.IgnoreRoute("{resource}.axd/{*pathInfo}");
routes.MapPageRoute(
"SomeRoute",
"Test/{reportname}",
"~/ASPWebforms/MyFolder/{reportname}.aspx"
);
然后在浏览器中输入:
本地主机/MySite/测试/默认
我得到了所需的结果:显示页面 ~/ASPWebforms/MyFolder/Default.aspx。
但如果我使用以下
代码
routes.MapPageRoute(
"SomeRoute",
"Test/",
"~/ASPWebforms/MyFolder/Default.aspx"
);
and try
本地主机/MySite/测试
IIS 7.5 说:
HTTP 错误 403.14 - 禁止 Web 服务器配置为不列出
该目录的内容。
我在最后一段代码中做错了什么吗?
提前谢谢!
我遇到过很多这样的事情,从周围的阅读来看,这似乎可能是由几种不同的原因引起的。就我而言,我有这样的路线:
routes.MapPageRoute("signin", "signin", "~/SignIn/SignIn.aspx")
所以路由路径是/signin
,但还有一个名为/signin
包含 .aspx 页面。
我收到错误响应HTTP Error 403.14 - Forbidden. The Web server is configured to not list the contents of this directory
.
当我将此行添加到路由配置中时,此问题已修复:
routes.RouteExistingFiles = true;
该错误消息有一定道理:/signin
是一个目录,并且 Web 服务器配置为不列出其中的文件。除非您以其他方式配置,否则此文件路径似乎优先于路由。
我尝试过的其他事情:
- 我不需要使用不同的重载
MapPageRoute
- 我不需要添加
UrlRoutingModule
到 web.config 下system.webServer|Modules
。没有它它也能工作。
- 它无需 web.config 设置即可工作
<modules runAllManagedModulesForAllRequests="true">
我确实有其他原因,但如果我删除它,那么这个修复仍然有效。
- 我确实在机器中安装了服务器功能“Http Redirection”
Server Manager|Web
Server|Add Role Services
对话,但再次删除后,这仍然有效。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)