Web服务器配置为不列出此目录的内容

  • 本文关键字:服务器配置 Web fubumvc
  • 更新时间 :
  • 英文 :


使用Visual Studio 2012:

  1. 我创建了一个"ASP.NET空Web应用程序"(使用C#(
  2. 我使用NuGet安装了FubuMVC软件包
  3. 当我运行应用程序(使用IISExpress(时,我会得到"欢迎使用FubuMVC!"页面,该页面告诉我删除FubuMVC.GettingStarted.dll文件并设置主页
  4. 所以我做了这两件事,实现了一个HomeController,它只是从Index返回"Hello World"

我得到的不是预期的"Hello World",而是IIS错误:The Web server is configured to not list the contents of this directory.

我做错了什么?

试试这个cmd=>不要忘记以管理员身份运行

%windir%\Microsoft.NET\Framework64\v4.0.30119\aspnet_regiis.exe-ir

刚刚尝试用一个全新的项目重现您的问题;事实证明,问题是示例中的指令没有跟上FubuMVC中的变化。

指令告诉你创建一个名为"MyHomeController"的类,并向其中添加Index((方法。这在过去很有效,因为路由的默认规则之一是使用任何名称以"Controller"结尾的类。

但在最近的版本中,默认值已经更改,该规则现在查找以"EndPoint"结尾的类。

因此,如果您将类的名称从"MyHomeController"更改为"MyHomeEndpoint",它应该可以工作。

此外,请记住,应用程序池需要重新启动才能使新配置生效,因此您可能必须触摸web.config(或强制IISExpress重新启动(。

您在Global.asax中激活了FubuMVC吗?当没有FubuMVC应用程序时,我通常会看到这个错误。

因此,在Application_Start(((或它真正的名称(中,您需要类似以下内容:

FubuApplication.DefaultPolicies((.StructureMap(new Container(((.Bootstrap((;

你告诉它的地方:1.(使用哪些政策/惯例2.(你的IoC容器是什么

通常,如果我遇到这种情况,那是因为我与项目中的路由和文件夹发生了冲突。例如,我可能有一个名为"Unit"的文件夹,其中有一个名称为"UnitEndpoint"的类,方法为"get_Unit"(假设我使用的是FubuMVC默认值,它应该映射到"/Unit"作为路由(。

在这种情况下,浏览到"/unit"将导致此错误,因为IIS认为我正在尝试列出"unit"文件夹的内容。重命名端点或文件夹以删除冲突将解决此问题(例如,将"Unit"文件夹重命名为"Units"(。

我建议你重新编译你的应用程序,或者至少触摸你的global.asax——看起来你需要重新运行App_Start方法。

相关内容

最新更新