問題タブ [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.

0 投票する
0 に答える
396 参照

asp.net-mvc - System.Web.Mvc.ViewStartPageから継承する仮想ビュー

このstackoverflowスレッドで説明されているVirtualPathProviderを使用してファイルから仮想ビューを取得しようとすると問題が発生しました。

ここで私の質問は、仮想ビューがSystem.Web.Mvc.ViewStartPageから継承する理由と、仮想ビューをWebViewPageから継承して使用できるようにする方法です。

ViewResult View(string viewName);

それ以外の

PartialViewResult PartialView(string viewName);

説明されている回避策のように?

0 投票する
1 に答える
497 参照

asp.net - VirtualPathProvider を介して返された静的リソースをキャッシュする

VirtualPathProvider現在、仮想パスをソリューションの外部のディレクトリにマップするを使用しています。主に自主練習用に作っています。これは、ソリューションのディレクトリにソフト リンクまたは NTFS ハード リンクを設定することとまったく同じです。

とにかく、カスタム プロバイダーを使用して、その仮想ディレクトリから静的イメージを正常に読み込むことができました。

問題は、ブラウザが画像をキャッシュしないことです。また、サーバーはキャッシュ情報 (ETag など) を返すことさえ考えていません。

これが私がやったことです:

  • GetFile(path).Open()FileStream経由で戻りますFile.Open()
  • 私はオーバーライドしませんでしたGetCacheKeyGetCacheDependencies
  • 私はMurmurハッシュを返すことをオーバーライドしGetFileHash(CRC-32よりも最速のようです)、テストしました
  • デバッグ中GetFileHashに、プロバイダーで呼び出されることはありません

CTRL-F5ing は次のヘッダーのみを返します (キャッシュへの参照はありません)

現在、Visual Studio のデバッグ サーバーと Firebug を搭載した Firefox でデバッグしています。

例として、これが私が期待したものです(http://i.stack.imgur.com/3mn3d.png)

質問は明らかです:これらの静的リソースをブラウザーにリロードさせないようにするにはどうすればよいですか?

0 投票する
1 に答える
991 参照

bundle - 仮想パス プロバイダーでのバンドルの回避策

ASP.NET MVC 4 では、仮想パスがVirtualPathProvider. つまり、ディレクトリ「~/Static/」が VPP にマップされている場合Include("~/Static/Stylesheets/themes/dark-blue.css")、それは単純に黙って失敗するため、できません。

ASP.NET パイプラインを使用するのではなく、基本的にファイル システムで仮想パスを解決するため、これがランタイムの既定の動作であるように見えます。幸いなことに、次の MVC で実装される予定です。

とにかく、これは一般的な問題のように見え、プロジェクトの外に静的リソースを保存する予定なので (最終的には Azure の CDN に保存しますが、まだ開発とデバッグを行う必要があります)、ASP.NET Web を許可する回避策を見つけた人はいますか?仮想パス内のリソースの最適化検索?

0 投票する
0 に答える
507 参照

c# - EpiServer ページファイル用の有効な aws S3 仮想パス プロバイダーを追加するにはどうすればよいですか?

Amazon S3 を利用したり、画像をホストしたりしたい EpiServer プロジェクトを実行しています... pagefiles ディレクトリから多数の画像が存在します。

NuGet for Visual Studio をダウンロードし、AWSSDK および Geta.AmazonS3 ライブラリを追加して、Amazon S3 を仮想パス プロバイダーとして追加できるようにしました。

次の行を EpiServer.config に追加しました。

また、グローバルファイルに対しては正常に機能します。

しかし、ページファイルに同じものを追加しようとすると、次のメッセージが表示されます。

「ページ ファイルを処理するように構成された VirtualPathProvider は、IPageDirectory を実装するディレクトリを返す必要があります」。

何が間違っている可能性があるか、または何をする必要があるかを知っている人はいますか?

ライブラリを見ると、IPageDirectory (または少なくとも統合ファイル システム) を実装しているように見えます。 Geta.AmazonS3 ライブラリ

0 投票する
0 に答える
136 参照

c# - データベースから一部のビューをロードし、MVC4のファイルから他のビューをロードする方法

ファイルから_Layoutと通常のページビューをロードするWebアプリケーションがあり、VirtualPathProviderとオーバーライドされたVirtualFileを使用してデータベースから部分ビューをロードしようとしています。

また、global.asaxにプロバイダーを登録します。

ただし、RavenDbPathProviderを登録すると、すべてのビュールックアップに使用されるようです。

ビューがディスク上で見つからない場合にデータベースで検索が続行されるように、複数のVirtualPathProviderを登録することは可能ですか?

そうでない場合、誰かがこれと同様のことを成功させましたか?

0 投票する
1 に答える
426 参照

iis - IISでディレクトリリストを偽造する方法は?VirtualPathProviderはファイルに対して機能しますが、

xamlxベースのワークフローを実行するためにAppFabric1.1とIIS8.0を使用しています。静的なxamlxファイルをなくすために、Ron Jacobsの完璧なサンプルコードを使用して、それらをデータベースに保存し、xamlxコンテンツを提供しますVirtualPathProvider

http://blogs.msdn.com/b/rjacobs/archive/2011/06/15/how-to-load-wf4-workflow-services-from-a-database-with-iis-appfabric.aspx

これまでのところ、誰かが正しいuriをヒットすると、xamlxファイルが提供されます。

ただし、AppFabricダッシュボードでは、xamlxファイルがAppFabricに表示されなくなったため、ファイルを収集してサービスとして登録する機会がなくなりました。

目標は、ディレクトリリストを偽造し、dbからすべてのxamlxワークフロー名を読み取ることである必要があります。

VirtualPathProviderこのようにディレクトリベースのメソッドをオーバーライドしてを拡張することで、これを実行しようとしました

しかし、これらのメソッドは、私が推測したようには呼び出されません。これは、URIに拡張子がなく、asp.netが呼び出されないためです。

この偽のディレクトリリストを作成するために感謝します!

ありがとう

0 投票する
1 に答える
393 参照

c# - 公開時に Azure の VirtualPathProvider が機能しない

1 つの Web アプリケーションで複数のドメインを管理するために、Request.Host に基づいてカスタム フォルダー内のすべてのリソースを移動できる VirtualPathProvider を作成しました。

ローカル マシンでは MVC アプリケーションが動作しますが、Azure に公開すると、不明なエラー (HTTP 503) が発生し、詳細情報を得るために何をチェックすればよいかわかりません。

プロバイダーの実装は次のとおりです。

0 投票する
1 に答える
3118 参照

virtualpathprovider - mvc4 razor に VirtualPathProvider の動作サンプルはありますか?

関連するスレッドを何十も読み、サンプルから非常に単純な仮想プロバイダーを作成しました。

ただし、仮想ファイル ストリームはレンダリングされません。計画テキストを表示するだけです。

これが出力です。

これに関する関連スレッドがありますが、どのように解決したか、または解決策が機能しないとは言っていません。何が間違っていたのかわかりません。

他にもたくさんあります...

どうしたの ?

これが私のテストコードです。(Global.asax を変更しただけです。)

0 投票する
1 に答える
360 参照

asp.net-mvc-4 - IIS6でEmbeddedResourceVirtualPathPoviderを使用する方法

Mvc.JQuery.DatatablesNugetを使用してVS2010でASP.NETMVC4Webアプリケーションを開発しているときに、参照されているEmbeddedResourceVirtualPathProvider NuGetが開発ボックスで正常に機能しましたが、本番ボックスでは惨めに失敗しました。

実稼働ボックスはWindows2003で、IIS6と.NET4.0がインストールされています。

SOとグーグルで多くのことを検索しましたが、提案された回避策を実装した後でも失敗します:

これが私がやったことです。

  1. https://stackoverflow.com/a/5178993AppInitializeによって提案されたように実装します
  2. http://haacked.com/archive/2008/11/26/asp.net-mvc-on-iis-6-walkthrough.aspxで提案されているように、ASP.NETのワイルドカードマッピングを実装しました
  3. https://stackoverflow.com/a/3144841で提案されているように、静的ファイルにIgnoreRouteを実装しました

ただし、それでもすべてのファイルを提供するわけではありません。埋め込まれた部分ビューを取得していますが、埋め込まれたcss、js、およびjpgファイルは取得していません。

私のweb.configには、StaticFileHandlerのエントリが次のようにあります。

重要なものが欠けているようです。助言がありますか?

0 投票する
1 に答える
315 参照

c# - virtualpath を実装し、仮想ファイル内の文字列から日付時刻を提供して表示する

私はMVCに非常に慣れておらず、仮想パスプロバイダーを突き刺そうとし、画面に日時を表示しようとしています。パスは正常に機能し、アプリケーションによって認識されますが、detetime は表示されず、代わりに文字列 "Time is: @DateTime.Now" が表示されます。しかし、仮想ファイルを直接返すと、時間が正確に表示されます。

次のコードは、仮想ファイルを取得します。

前述したように、上記のコードの一部をコメントアウトすると、時刻が正しく表示されることがわかります。

仮想ファイルのコード:

任意の提案をいただければ幸いです。