IIS7 MVC路由不起作用

问题描述 投票:5回答:7

我们公司提供了一个基于MVC的产品(针对v4.5),该产品已经停止在客户现场工作,看似环境问题 - 一个曾经没有任何问题的构建现在给了403.14 - The Web server is configured to not list the contents of this directory。 。

我认为发生了什么......

  • 用户访问http://server/AppName
  • 因为它是MVC应用程序,所以应该使用默认路由(Reports/Index)。
  • 相反,IIS正在寻找默认文档......
  • ...而且,没有找到一个,它假定用户想要列出目录的内容......
  • ...未启用,因此它会抛出403.14。 。

到目前为止我尝试过的...

  • 直接访问路由..导致404错误。所以我很确定IIS没有意识到它应该使用路由。
  • 使用aspnet_regiis向IIS注册ASP.Net。这是从Framework64文件夹完成的,因为...... 操作系统是64位 - Windows Server 2008(没有Hyper-V的标准版) IIS是64位 - 虽然Enable 32-Bit Applications是真的
  • Checked AppPool的目标是框架的v4 - 它是。
  • 将AppPool模式更改为Classic - 非常确定它应该被集成,但值得排除它。它现在回到Integrated
  • 确认RunAllManagedModulesForAllRequeststrue设置为web.config
  • <system.webServer>web.config部分中定义的检查许可条件得到满足 - 它们是。
  • 创建了最简单的MVC应用程序并部署它 - 同样的问题。
  • 以管理员身份运行命令shell使用aspnet_regiis -ua取消注册ASP.Net并使用aspnet_regiis -enable -i重新注册。我们遇到了一些权限问题 - 并且Temporary ASP.NET Files目录丢失但是一旦它们是地址我们又回到了同样的错误。
  • 添加了一个简单的default.htm - 当存在时,这是为了响应http://server/AppName请求。

我没有想法,所有谷歌点击建议上面的一些组合 - 或启用目录浏览(我认为这只是一个症状,而不是根本原因)。

此外,不确定它是否相关,但IIS中的应用程序可用的可配置元素数量似乎略低于我的预期...

IIS Options

asp.net asp.net-mvc asp.net-mvc-4 routes iis-7
7个回答
0
投票

您可以尝试使用Enabling目录浏览。假设您在Windows Server 2012或Windows Server 2012 R2下

  1. 在任务栏上,单击“服务器管理器”。
  2. 在服务器管理器中,单击“管理”菜单,然后单击“添加角色和功能”。
  3. 在“添加角色和功能”向导中,单击“下一步”。选择安装类型并单击“下一步”。选择目标服务器并单击“下一步”。
  4. 在“服务器角色”页上,展开“Web服务器(IIS)”,展开“Web服务器”,展开“常用HTTP功能”,然后选择“目录浏览”。点击下一步。
  5. 在“选择功能”页上,单击“下一步”。在“确认安装选择”页面上,单击“安装”。在“结果”页面上,单击“关闭”。

如果您使用Windows PC,请在命令提示符中尝试此操作,如下所示:

  1. C:\Program Files\IIS Express
  2. 然后按Enter:appcmd set config /section:system.webServer/directoryBrowse /enabled

0
投票

您是否检查过用户正在运行的应用程序池进程?我认为您的网站需要运行具有执行.net库的权限,我看到这只是因为看似没有原因而改变(可能与对系统的过度更新有关)。

enter image description here


0
投票

也许这是你的情况https://forums.iis.net/t/1157304.aspx

如果在IIS上安装SQL Server Reporting Services,则默认情况下会创建一个名为Reports的文件夹。如果安装SQL 2008,则Reporting Services不需要使用IIS,而是尝试使用HTTP.Sys服务保留URL。

我相信这是你所看到的冲突的原因。您可以尝试通过SQL Server配置向导更改Reporting Services使用的URL。

我也找到了

SQL Server的报表管理器可以使用报告路径http://<server name>/reports Configure a Native Mode Report Server for Local Administration (SSRS)


0
投票

我认为问题是尚未安装的IIS功能。我在Windows Pro中经常遇到这种问题。确保打开Internet信息服务 - >全球服务下的每个功能,因为默认情况下IIS配置为使用WebForms。因此可能还有一些功能尚未安装使用MVC,尤其是ISAPI过滤器。就我而言,这就是解决方案。我希望它有所帮助。


0
投票

我使用VS 2017和ASP.NET MVC遇到类似的东西。长时间没有任何问题地工作该项目,但突然之间路由开始行为不端并停止工作。

所以我在项目属性页面中更改了端口并开始工作。

我真的不知道端口和MVC路由模块之间的关系是什么。如果有任何帮助,别人可以启发。


0
投票

我遇到了同样的问题,我刚从IIS中的默认网站创建了一个应用程序池,并停止了默认网站。有了这个差异,你将没有应用程序池的路径


-1
投票

以下是我在Microsoft official site上发现的一些引用,我认为这可能有所帮助:

对于站点管理员

出现此问题的原因是网站没有启用目录浏览功能,并且未配置默认文档。若要解决此问题,请使用以下方法之一:

方法1:在IIS中启用目录浏览功能(推荐)

若要解决此问题,请按照下列步骤操作:启动IIS管理器。为此,请单击“开始”,单击“运行”,键入inetmgr.exe,然后单击“确定”。在IIS管理器中,展开服务器名称,展开网站,然后单击要修改的网站。在“功能”视图中,双击“目录浏览”。在“操作”窗格中,单击“启用”。

方法2:添加默认文档

若要解决此问题,请按照下列步骤操作:启动IIS管理器。为此,请单击“开始”,单击“运行”,键入inetmgr.exe,然后单击“确定”。在IIS管理器中,展开服务器名称,展开网站,然后单击要修改的网站。在“功能”视图中,双击“默认文档”。在“操作”窗格中,单击“启用”。在“文件名”框中,键入默认文档的名称,然后单击“确定”。

方法3:在IIS Express中启用目录浏览功能

注意此方法适用于在使用IIS Express时遇到问题的Web开发人员。

为此,请按照下列步骤操作:打开命令提示符,然后转到计算机上的IIS Express文件夹。例如,在命令提示符下转到以下文件夹:C:\ Program Files \ IIS Express键入以下命令,然后按Enter键:appcmd set config / section:directoryBrowse / enabled:true

© www.soinside.com 2019 - 2024. All rights reserved.