我们的主站点是ASP.net 4.5并使用Ektron(A .net CMS)我试图将其变成MVC4 / Webforms混合体。
据我所知,我已经正确安装了MVC4所需的一切,但是当我尝试点击默认的Home控制器时,我得到了经典
[InvalidOperationException: The view 'Index' or its master was not found or no view engine supports the searched locations. The following locations were searched:
~/Views/home/Index.aspx
~/Views/home/Index.ascx
~/Views/Shared/Index.aspx
~/Views/Shared/Index.ascx
~/Views/home/Index.cshtml
~/Views/home/Index.vbhtml
~/Views/Shared/Index.cshtml
~/Views/Shared/Index.vbhtml]
我使用NuGet安装了MVC4,并通过复制默认控制器,查看默认MVC4应用程序中的App_Start和Global.asax文件。我还安装了WebAPI,它运行正常(因此告诉我路由确实正常工作,即我可以转到API / Values并获得默认值api数据)。
该网站作为主网站安装,即不作为子网站或子应用程序安装。
我最初认为可能是处理程序部分存在问题,因为Ektron(我们的CMS)有大量的处理程序,但它已经将web.config分开,并且在那里找不到任何问题。我甚至尝试用默认的MVC4应用程序替换它并得到相同的错误。 注意,我确实必须将默认的web.config和我的自定义部分更改为一个部分 当我在那里有这个部分时:
<dependentAssembly>
<assemblyIdentity name="System.Net.Http" publicKeyToken="b03f5f7f11d50a3a" culture="neutral" />
<bindingRedirect oldVersion="0.0.0.0-2.1.10.0" newVersion="2.1.10.0" />
</dependentAssembly>
我收到错误
Could not load file or assembly 'System.Net.Http, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a' or one of its dependencies. The located assembly's manifest definition does not match the assembly reference. (Exception from HRESULT: 0x80131040)
我查看了该DLL的程序集详细信息,发现它是版本4.0.0.0所以我将该部分更改为
<dependentAssembly>
<assemblyIdentity name="System.Net.Http" publicKeyToken="b03f5f7f11d50a3a" culture="neutral" />
<bindingRedirect oldVersion="0.0.0.0-4.0.0.0" newVersion="4.0.0.0" />
</dependentAssembly>
哪个修复了这个错误,据我所知是可以的,但是再一次,我留下了上面没有找到意见的问题。
非常感谢任何帮助。
答案 0 :(得分:0)
好的,我感到愚蠢。
@SLaks简单的问题帮助我找到答案。
我们有一个相当复杂的构建系统。它将Ektron基本代码项目(它是一个网站而不是项目)与我们的主项目和类库组合成输出目录,在本例中是/ debug,这是我的IIS指向的地方。涉及到几个步骤,包括在“构建”期间将我们的Web项目转换回网站(不要问,这是一个痛苦,但加快了一吨的构建时间)。 无论如何,我们只复制某些文件类型,而.cshtml不在列表中,所以是的,输出调试目录中没有视图文件夹。 。