有谁知道如何从 ASP.NET Web 应用程序中完全禁用 .cshtml 扩展名?
本质上,我想劫持 .cshtml 扩展名并基于RazorEngine主机提供我自己的实现,尽管当我尝试直接访问 page.cshtml 时,它似乎正在我试图禁用的现有 WebPages razor 主机下运行.
注意:在初始化 Microsoft.Data 数据库时,它看起来像是在 System.Web.WebPages.Razor 上下文下执行的 .cshtml 页面。我什至没有引用任何 Mvc 或 WebPages dll,只有 System.Web.dll 和带有 RazorEngine.dll 的 System.Web.Razor 的本地副本
我创建了一个新的 ASP.NET Web .NET 4.0 应用程序并尝试清除所有 buildProviders 和处理程序,如下所示:
<system.web>
<httpModules>
<clear/>
</httpModules>
<compilation debug="true" targetFramework="4.0">
<buildProviders>
<clear/>
</buildProviders>
</compilation>
<httpHandlers>
<clear/>
<add path="*" type="MyHandler" verb="*"/>
</httpHandlers>
</system.web>
<system.webServer>
<modules runAllManagedModulesForAllRequests="true">
<clear/>
</modules>
<handlers>
<clear/>
<add path="*" name="MyHandler" type="MyHandler" verb="*" preCondition="integratedMode" resourceType="Unspecified" allowPathInfo="true" />
</handlers>
</system.webServer>
尽管如此,当我访问任何page.cshtml页面时,它仍然会绕过我的通配符处理程序并尝试执行页面本身。
基本上我想删除 .cshtml handlers/buildProviders/preprocessing 的所有痕迹,这样我就可以自己为 .cshtml 页面提供服务,有人知道我该怎么做吗?