11

Vista で IIS7 経由で Web サイトを実行しています。サイトはポート 88 で実行されているため、http://localhost:88はデフォルトの /Home/Index ビューをレンダリングする必要があります。

これは、他のすべてのビューと同様に正しく機能します。

ただし、1 つの問題は常駐です。私のスクリプト パスは /Scripts/[FILE] を指し、CSS パスは /Content/[FILE] を指しています。このサイトを仮想ディレクトリ設定で実行するつもりはないため、/Content または /Scripts フォルダーは常にサイトのルートにあると想定していました。ページがレンダリングされるときはいつでも、CSS やスクリプトはありません! そのため、すべてが不安定に見え、スクリプトが明らかに機能しないため、多くのビューも機能しません。

これは非常に奇妙な問題であり、IIS7 でのホストに関する知識が不足しているためだと確信しています。誰かが提供できる助けをいただければ幸いです。どうもありがとう!

4

5 に答える 5

12

このスレッドが続くことで、この問題が誰かを崖から追い出さないようにするという意欲が伝わることを願っています。Vista でこの問題を解決する方法については、さまざまなフォーラムに多くのドキュメントがありますが、2K8 に関する同様の記事は見つかりませんでした。このフォーラムの投稿に示されているように、Vista マシンで問題を修正できました。悲しいかな、同様の実行は 2K8 の問題を解決できませんでした。

apijunkie.comのこのブログ投稿で提案されているように、StaticFileHandler が web.config に含まれていることを確認しました。それでも、運が悪い。

ここで運がないことを明確にします-サーバー側の機能は完璧でした。すべての MVC ルートはチャンピオンのように機能します。すべての CSS と JS のレンダリングが失敗しました。ブラウザーが CSS または JS ファイルを直接指した場合、結果のページは ASP.NET 404 であり、従来の404 エラー ページではありませんでした。

そこで、IIS7 Manager と Handler Mappings ダイアログに入りました。System.Web.StaticFileHandler 型を指定し、*.CSS の拡張子を付けた新しいハンドラーを追加しました。次に、*.JS、*.PNG、および *.GIF ファイルについても同じことを繰り返しました。ブラウザでサイトを更新すると、すべてが完全にレンダリングされました。以下のスクリーンショットは、このプロセスを示しています。

ハンドラー マッピング ウィンドウ:

ハンドラーのマッピング
(ソース: windows.net )

新しいマネージド ハンドラーの追加

代替テキスト
(ソース: windows.net )

これで問題が解決し、W2K でホストされている MVC アプリが完全に機能するようになりました。ギネスの時間。

于 2008-12-10T02:29:16.050 に答える
7

コントロールパネルから、[Windowsの機能をオンまたはオフにする]に移動し、IISのサブサブサブノードの静的コンテンツを確認します。

于 2010-11-30T05:23:45.233 に答える
3

問題は、アプリケーションの作成方法にありました。ここにあるフォーラム スレッドによると、問題を解決するには "Classic .NET AppPool" を選択する必要がありました。お奨め愛の進歩!

于 2008-12-09T19:00:13.990 に答える
0

これは Windows 2008 での修正ではないことが判明しました。この問題を解決する方法について何かアイデアがあれば、よろしくお願いします。

詳細な問題:

Windows 2K8 サーバー、IIS7。パイプラインを有効にし、静的ファイル サポートをインストールします。MVC は機能しますが、CSS はレンダリングされません。

一体何?

于 2008-12-10T01:19:48.310 に答える
-2

問題は正確には認可/認証にあるのではなく、IIS を管理するモジュールにあります。system.webServer 内では、runAllManagedModulesForAllRequestsをfalseに設定して、認証に問題なくすべての画像/css を表示できるようにする必要があります。

ASP.NET Web サイトでは、以前はルーティングをサポートするためにrunAllManagedModulesForAllRequestsの値を true に設定する必要がありました。ただし、IIS 7 が Service Pack で更新されると、 ASP.NET ルーティングを使用するときにrunAllManagedModulesForAllRequestsの値をfalseに設定するか省略できます。

参考文献 http://www.iis.net/configreference/system.webserver/modules

PS web.config ファイルの AppSettings セクションに次の行を追加することを忘れないでください。

< add key="autoFormsAuthentication" value="false" />

< add key="enableSimpleMembership" value="false"/>

于 2014-12-23T23:27:09.433 に答える