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

时间:2011-02-05 01:25:14

标签: 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的目录。
  • “报告”页面可以在我们的UAT环境中正常运行,也可以在IIS 7.5下运行。
  • 我已多次查看我的IIS设置,包括将它们与UAT上的设置进行比较,我看不出有问题。

虽然我可以使用Cassini访问“报告”页面,但我真的很想了解导致此问题的原因。

3 个答案:

答案 0 :(得分:12)

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

答案 1 :(得分:1)

我在IIS 7.5上的.net 2.0网站的根目录下使用目录名“Reports”时遇到问题。它会生成503错误,表示在IIS尝试为页面提供服务之前系统级别存在错误。我不确定我的服务器上是否安装了报告服务。我只是更改了目录名称,所有链接和一切都有效。

答案 2 :(得分:1)

我的MVC应用程序中存在完全相同的问题,并且在部署代码的同一服务器上安装了报告服务。我在" SQL Server Reporting Services配置"中更改了报表管理器URL。这是hostName / Reports并分配了一个新名称,即SSRSReports,因此虚拟目录现在是hostName / SSRSReports。

现在我的应用程序以及SSRS报告正在按预期工作。