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

时间:2013-04-14 13:16:08

标签: fubumvc

使用Visual Studio 2012:

  1. 我创建了一个“ASP.NET空Web应用程序”(使用C#)。
  2. 我使用NuGet安装FubuMVC包。
  3. 当我运行应用程序(使用IIS Express)时,我收到“欢迎使用FubuMVC!”告诉我删除FubuMVC.GettingStarted.dll文件并设置主页的页面。
  4. 所以我做了这两件事,实现HomeController,只是从"Hello World"返回Index
  5. 而不是预期的“Hello World”,我收到IIS错误:The Web server is configured to not list the contents of this directory.

    我做错了什么?

5 个答案:

答案 0 :(得分:2)

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

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

答案 1 :(得分:1)

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

所以在Application_Start()(或者它真正称之为的任何东西)中,你需要这样的东西:

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

你在说什么: 1.)使用哪些政策/惯例 2.)你的IoC容器是什么

答案 2 :(得分:1)

通常,如果我遇到这个问题,那是因为我与项目中的路径和文件夹发生冲突。例如,我可能有一个名为'Unit'的文件夹,在其中我有一个名为'UnitEndpoint'的类,其方法为'get_unit'(应该映射到'/ unit'作为路径,假设我使用的是FubuMVC默认值)。

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

答案 3 :(得分:1)

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

指令告诉您创建一个名为“MyHomeController”的类,并为其添加Index()方法。这曾经起作用,因为路由的默认规则之一是使用名称以“Controller”结尾的任何类。

但是更新版本中的默认值已经更改,规则现在查找以“EndPoint”结尾的类。

因此,如果您将类的名称从“MyHomeController”更改为“MyHomeEndpoint”,那么它应该可以正常工作。

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

答案 4 :(得分:0)

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