使用Visual Studio 2012:
FubuMVC
包。FubuMVC.GettingStarted.dll
文件并设置主页的页面。HomeController
,只是从"Hello World"
返回Index
。而不是预期的“Hello World”,我收到IIS错误:The Web server is configured to not list the contents of this directory.
我做错了什么?
答案 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方法。