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 ページを自分で提供できるようにしたいのですが、これを行う方法を知っている人はいますか?