我查看了其他帖子,但似乎没有人回答我的需要。
<?xml version="1.0" encoding="utf-8"?>
<configuration>
<appSettings>
<add key="webpages:Enabled" value="true" />
</appSettings>
<system.web>
<compilation debug="true" targetFramework="4.0" />
</system.web>
</configuration>
我在Windows 7上。有什么明显的我做错了吗?
谢谢
我错过了 Microsoft.AspNet.WebPages
NuGet包。安装它解决了我的问题。 (这个包依赖于 Microsoft.Web.Infrastructure
和 Microsoft.Web.Razor
因此包括他们)
如果您使用NuGet控制台,只需键入:
Install-Package Microsoft.AspNet.WebPages
我在许多机器上设置了Razor,并且经常发现我需要在我的bin文件夹中包含以下DLL:
- System.Web.Razor.dll
- System.Web.WebPages.Deployment.dll
- System.Web.WebPages.dll
- System.Web.WebPages.Razor.dll
- Microsoft.Web.Infrastructure.dll
这可能不是您的确切问题,但我发生这种情况有几个原因:
服务器上的框架不正确:确保目标框架
项目由服务器支持。只是改变了
编译元素的targetFramework属性可能不是
足够的,因为您的项目的DLL可能会被编译
反对4.5框架。
应用程序池的框架不正确:如果,也可能发生这种情况
您的应用程序池未使用正确的.Net CLR版本。使
确定它使用的是4.0而不是2.0
在我的情况下,罪魁祸首是Global.asax被置于'/ Views'文件夹下。当项目针对MVC3时,这在某种程度上起作用。一旦解决方案升级到MVC4,运行所述解决方案将导致上述错误。同样,其他错误会提到:
“没有设置默认网页,并且已禁用目录浏览”
解决方案:升级到MVC4 +之后,我不得不在容器项目的根文件夹下手动移动Global.asax。请务必检查Global.asax以确保其中应用的命名空间是正确的。只是我的2c。
在我的情况下,我设置 webpages:Enabled
至 true
下 appSettings
:
<appSettings>
<add key="webpages:Enabled" value="false" />
</appSettings>
根据帖子: webpages的功能是什么:在MVC 3 web.config中启用,这可以防止从Web浏览器直接访问Views文件夹中的文件。