"プラグイン"機能を備えたMVC 3アプリケーションを開発しています。 プラグインは、必要なすべてのリソース(css、画像、スクリプト)が埋め込まれたC#dllです。MVC 3とIIS7から組込み埋め込みリソースを提供するにはどうすればよいですか?
"MvcRazorClassGenerator" Visual Studio拡張機能を使用してプリコンパイル済みのビューを作成しました。私はコードがリソースにアクセスするには、以下のいる景色で
public FileStreamResult EmbeddedResource(string pluginName, string resourceName)
{
Assembly assembly = PluginCache.GetAssembly(pluginName);
if (assembly != null)
{
string tempResourceName =
assembly.GetManifestResourceNames()
.ToList().FirstOrDefault(f => f.EndsWith(resourceName));
return new FileStreamResult(
assembly.GetManifestResourceStream(tempResourceName),
GetMIMEType(tempResourceName));
}
return null;
}
:
は、私は次のコードを使用して、埋め込みリソースを取得
@Url.Content("/Common/EmbeddedResource/PluginName/[AssemblyNamespace].Content.Images.blank.gif")
私は開発環境にいる間、すべてが正常に動作している
すべてのリソースが正しく読み込まれて表示されますが、展開すると悪夢が始まります。
IIS 7.5は、埋め込みファイルではなく、 "/Common/EmbeddedResource/PluginName/[AssemblyNamespace].Content.Images.blank.gif"という名前の静的ファイルを検索して、すべての埋め込みリソースに対して404エラーを表示します。
このサイトの質問に記載されているホットフィックスをインストールし、設定ファイルを変更しようとしましたが、リソースがロードされませんでした。
私はWindows 2008 Server R2 SP1 64bitに展開しようとしています。
はい、私は(私はほとんどこのプロジェクトと私の上司を終えたので、私はすべて再engeneerに提案する場合は、幸せではないでしょう、おそらく将来の使用のため;)、このフレームワークを見てみましょう)。しかし、私の質問に関しては、URLに「ドット」がある場合、IISはアクションを呼び出さないようです...私はこれを回避する方法を行っていますが、現時点では「好奇心」です。 –