将一个非MVC项目但用到Razor引擎,部署到MVC项目下面:通过IIS主网站下面添加应用程序方式;但这种方式部署后会出现:由于已明确禁止所请求的页类型,无法对该类型的页提供服务。扩展名“.cshtml”可能不正确;但直接部署一级应用是没问题;
解决方法:
选中项目:点击应用程序设置
由于子项目用的版本是webpages 是3.0,高于父级项目,而这里是继承父级的应用的,所以要点击编辑改为3.0(前提自己项目bin中存在对应版本的System.Web.WebPages.dll),然后点击保存(PS:继承会自动变为本地)
还有运行子项目莫名出现父级项目存在的一些dll,而子项目不需要时
例如父级webconfig中有
<pages>
<namespaces>
<add namespace="System.Web.Helpers" />
<add namespace="System.Web.Mvc" />
<add namespace="System.Web.Mvc.Ajax" />
<add namespace="System.Web.Mvc.Html" />
<add namespace="System.Web.Routing" />
<add namespace="System.Web.WebPages" />
</namespaces>
</pages>
而子级不需要的话,可以在子项目webconfig中添加:
<pages>
<namespaces>
<remove namespace="System.Web.Helpers" />
<removenamespace="System.Web.Mvc" />
<removenamespace="System.Web.Mvc.Ajax" />
<removenamespace="System.Web.Mvc.Html" />
<removenamespace="System.Web.Routing" />
<removenamespace="System.Web.WebPages" />
</namespaces>
</pages>