我设法在常规文件夹中运行MVC应用程序而不在IIS中创建虚拟目录或应用程序,我将路由注册到我的"文件夹/文件夹/ mymvcappfolder / {controller} / {action}&#34 ;以及默认的控制器/动作。但是,如果我至少传递Url中的控制器名称,它会正常工作,否则它会给我" HTTP错误403.14 - 禁止" 。 我在web.config中尝试了以下解决方案,但没有成功
<system.webServer>
<modules runAllManagedModulesForAllRequests="true"/>
</system.webServer>
和
<system.webServer>
<modules>
<remove name="UrlRoutingModule-4.0" />
<add name="UrlRoutingModule-4.0" type="System.Web.Routing.UrlRoutingModule" preCondition="" />
</modules>
</system.webServer>
为什么我的路线在没有传递控制器名称的情况下无法工作的任何建议?
答案 0 :(得分:2)
那是因为您指向物理目录,不是您的路由不适用于默认设置,它是IIS阻止访问的内容到这个文件夹:(&#34; Web服务器配置为不列出该目录的内容&#34;)...
要使其正常工作,您必须在RouteConfig中启用路由现有文件:
RouteTable.Routes.RouteExistingFiles = true;