使用IIS 7中的ASP.NET MVC 1来路由具有特定控制器名称的问题

ste*_*jay 7 asp.net-mvc iis-7.5

我加入了一个开发ASP.NET MVC版本1应用程序的团队.我使用IIS 7.5版在我的本地计算机上运行此应用程序.我的操作系统是Windows Server 2008 R2企业版.我使用Visual Studio 2008 SP1进行开发.

此应用程序中的一个控制器称为ReportsController.此控制器的路由表条目使用"Reports"作为控制器名称部分.我遇到的问题是,在我的本地机器上使用IIS 7.5,我根本无法访问任何Reports操作方法.如果我尝试从Chrome或Firefox访问"/ Reports/Index",我会收到401 Unauthorized响应(如使用Fiddler所见),浏览器会显示其用户名/密码输入对话框.

请注意以下事项:

  • 应用程序中的所有其他非报告页面都能正常工作.
  • 如果我向Application_BeginRequest添加断点,则在请求"报告"页面时不会触发该断点.
  • 如果我更改路由表注册码中的Reports路由条目,以便我必须访问'/ Reportss/Index'之类的路径(注意额外的's'),那么这些Reports页面可以正常工作.
  • 我尝试删除然后在IIS中重新创建我的Web应用程序.
  • 如果我使用Visual Studio 2008开发服务器(Cassini)运行应用程序,则Reports页面可以正常工作.
  • 应用程序目录中没有名为Reports的目录.
  • Reports页面在我们的UAT环境中也能正常工作,也在IIS 7.5下.
  • 我已多次查看我的IIS设置,包括将它们与UAT上的设置进行比较,我看不出有问题.

虽然我可以使用Cassini访问Reports页面,但我真的很想了解导致此问题的原因.

小智 12

如果您的计算机上安装了Reporting Services.尝试创建一个新的网站并使用它.如果您的计算机上安装了SSRS,则会使用/ reports来托管报告.

  • 非常感谢@Cengiz,以及@mare和@Sean - Reporting Services就是问题所在.我通过访问Reporting Services配置管理器并更改报表管理器URL(这是麻烦的Reports目录的路径)上的主机头名称来解决此问题. (3认同)