問題タブ [virtualpathprovider]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
asp.net-mvc-3 - カスタムVirtualPathProviderを使用して埋め込みリソースの部分ビューをロードする
パーシャルビューである埋め込みリソースを正常に取得するカスタムVirtualFileおよびVirtualPathProvider実装を作成しました。
ただし、それらをレンダリングしようとすると、次のエラーが発生します。
The view at '~/Succeed.Web/Succeed.Web.Controls.SImporter._SImporter.cshtml' must derive from WebViewPage, or WebViewPage<TModel>.
通常のビュー内で部分ビューをレンダリングすると、次のようになります。
これが部分的な見方ではないと信じる原因は何ですか?
編集:私は、仮想ファイルと仮想ファイルプロバイダーの両方の実装のコードを投稿しました。このコンポーネントを機能させるための解決策を探している人のために。この質問は、質問のタイトルに基づいている人にも役立ちます。
参照用のVirtualFileの実装は次のとおりです。
VirtualPathProvider:
そしてもちろん、Application_Start()イベントでプロジェクトのGlobal.asaxファイルにこの新しいプロバイダーを登録することを忘れないでください
asp.net - VirtualPathProviderは、IIS 7.5の本番環境では(まったく)機能しません
私は共通の機能を備えたプロジェクトに取り組んでいます。具体的には、マスターファイルと関連するimages / js/etcを共有したいと思っていました。そのために、マスターページとその依存ファイルはすべて「グローバル」DLLにラップされ、すべての「サブプロジェクト」で使用されます。これはすべて開発でうまく機能しましたが、展開は多くの人を不意を突かせるような驚きをもたらしましたVirtualPathProvider
。プリコンパイルすると機能しません。
回避策を含むこのブログ投稿のおかげで、私はそれを機能させるために別の試みをすることができました。残念ながら、まだそうではありません。
私は自分の実装を取り除くことを選択しGlobal.asax
、ブログ投稿のAppInitialize
アプローチを採用しました。
実際のプロバイダーはデバッグで動作するため、ここには含めません。ご覧になりたい方は、お気軽にお問い合わせください。質問をできるだけ短くしたかっただけです。
この状況全体の興味深い側面は、本番環境でマスターページが見つからないというエラーが発生しないことです。私にとって、これはプロバイダーが機能していることを意味しますが、何らかの理由で残りのリソース(js / css / etc)がアセンブリから適切に取得されていません。
したがって、私の質問はこれに帰着します。このソリューションが開発ではうまく機能するが、IIS 7.5の本番環境では機能しない理由は何ですか?
更新2011年11月20日
David Ebboの提案を試しましたが、残念ながら結果はありませんでした。私のWeb設定は次のようになります。
更新2011年11月21日
VirtualPathProviderが実際に機能しているという疑いを確認するために、3行目(mi.Invoke(....
)をコメントアウトして、サイトを再デプロイしました。思ったとおり、MasterPageファイルが見つからないために壊れてしまいました。この問題は、VPPを介して配信される静的ファイルのみに関連しているようです。
azure - VirtualPathProvider を使用して Azure CDN にテーマを配置する
Azure CDN に Azure Web サイトのテーマを格納する方法を実装しようとしています。
ファイルを CDN にコピーし、元の App_Themes フォルダーにあったフォルダー構造を保持します。
VirtualPathProvider と、必要な Virtualdirectory および VirtualFile クラスを作成しました。プロバイダーは、global.asax に登録されています。
私の問題は、CDN から来ているように見える唯一のファイルがスキン ファイルであることです。すべての画像、css などは、標準の App_Themes 構造にあるかのように参照されます。コードにブレーク ポイントを配置すると、VirtualTheme の Open メソッドはスキン ファイルに対してのみ呼び出されます。
このようなソリューションを実装できた人はいますか?
私が間違っていることはありますか?
そして Global.asax Application_start で:
caching - Maintaining cache control property on a file when it is returned as Stream from VirtualPathProvider
I have implemented a VirtualPathProvider to return Theme files (images,css) for an Azure web site from the Azure CDN. It is working fine apart from one thing: the files that are coming from the CDN all have their cache control property set to "private" and so are never cached.
The actual blobs have their properties set correctly and if I access one by it's direct URL (i.e. not through the VPP) then the cache control is correct.
The problem seems to be in the Open() method of the VirtualFile class I have to implement to return the file as a Stream?
Searching on this and I find most people have the problem the other way - i.e. files are cached when they don't want them to be. However none of the examples I can find are referencing a file from another URL. They all seem to use databases or just different physical paths.
asp.net-mvc - 垂直asp.netMVC組織とVirtualPathProviders
私は現在、垂直方向に編成したい比較的大規模なMVCプロジェクトに取り組んでいます。
なぜ慣習を破るのですか?そして、ここ でより詳細に
実装に関する限り、計画はVirtualPathProviderです。私の質問は、このVirtualPathProviderに機能フォルダー名の知識を与えるための最良の方法は何でしょうか?
例:〜/ Features / {Feature} /View1.cshtml
c# - 書き込み可能なVirtualPathProviderのようなものはありますか?
私は、VirtualPathProvidersを使用してファイルシステム上のファイルへのアクセスを抽象化し、AmazonS3などの他のサービスと連携するように簡単に交換できるようにすることを検討しています。
これはファイルの読み取りには非常に効果的ですが、書き込みもサポートする同様の機能があるかどうか疑問に思いました。または、WritableVirtualPathProviderのようなものを自分で作成する必要がありますか?
どうもありがとう
マット
asp.net - 画像専用の ASP.NET チルダ (~) 解像度をオーバーライドする
大規模なレガシー アプリケーションがあり、すべてのイメージを CDN に移動したいと考えています。
現在、すべての画像はアプリケーション ルート自体の下にあるため、パスはすべて次のよう"~/Images/MyImage.jpg."
になります。システムの要件により、特定の画像が CDN に存在する場合は、実行時にその画像の完全な URL を特定する必要があります。これにより、バージョン管理、キャッシュなどを厳密に制御できます。イメージごとにコードを変更するのは、非常に長く、退屈で、エラーが発生しやすいプロセスです。
私がやりたいことは、画像のチルダを解決する方法を決定できる ASP.NET のメカニズムにフックできるようにすることです。これにより、既存のすべてのコードをそのままにしておくことができ、画像は実行時に CDN に送信されます。
VirtualPathProvidersについての言及がいくつか見つかりました。これは私が探していたもののように聞こえましたが、テストしたところ、CombineVirtualPaths関数に渡されたパスは で終わるパスだけでした.ASPX, .ASCX, and .MASTER
。
これのためのクリーンでリスクの低いオプションを見つけるのを手伝ってくれる人はいますか?
基本的に、私が必要とするのは、「~/images/myimage.jpg」が「http://mycdnhost.com/myimage.jpg」としてブラウザーにレンダリングされるアプリ内のどこにでもあります。これにより、ブラウザが画像のリクエストをサーバーに送信することをまったく回避できます。
asp.net - プリコンパイル済みの Razor ビューと VirtualPathProviders を使用しているときに、ファイル PrecompiledApp.config が見つかりませんでした
ほぼすべてに WebForms .aspx ファイルを使用するアプリケーションがあります。Latley では、プロジェクトに新しい dll をドロップするだけで、nicley パケット化された機能を取得する方法として、プリコンパイル済みの RazorViews を使用してきました。しかし、プリコンパイルされたビューが VirtualPathProvider と競合しているように見えることがわかりました。
外部 dll から VirtualPathProviders をロードするとき、アプリケーションはすべての要求に対して PrecompiledApp.config をロードしようとします (そして、それを取得できませんでした)。プロバイダーにはリフレクションがロードされます。登録と同じプロジェクトにいくつかの VirtualPathProviders があり、それらは正常に動作しますが、外部 dll からプロバイダーを登録するとHostingEnvironment.RegisterVirtualPathProvider
、この問題が発生します。
ファイル PrecompiledApp.config を追加すると、_appstart.cshtml などを取得しようとします。例外を通過する前に、これらすべてのファイルを以下に用意する必要があります。
- PrecompiledApp.config
- _appstart.cshtml
- _PageStart.cshtml
- _ViewStart.cshtml
- ビュー/_ViewStart.cshtml
- ビュー/共有/_ViewStart.cshtml
- default.cshtml
最終的には default.cshtml になり、残りのアプリケーションは機能します。デフォルトとして apsx-files を使用したいので、これは受け入れられる解決策ではありません。また、原因がわからないため、今後さらに問題が発生することも懸念されます。
この方法でプロバイダーをロードしようとしましたが、それでも同じエラーが発生します: http://sunali.com/2008/01/09/virtualpathprovider-in-precompiled-web-sites/
例外: