2

今日、私は非常に奇妙な問題と戦ってきました。以前はASP.NET4であったASP.NETMVC3Webアプリケーションの開発に日々を費やしていますが、現在はMVC3の半分とASP.NET4の半分がすべて同じアプリケーションで実行されているわけではありません。これはすべて問題ありません。

本日、新しいステージング環境(Server 2008 R2)をセットアップし、コードをデプロイしてアプリを実行しました。MVCページにアクセスしようとしたときにHTTP404エラーが発生する場合にのみ、すべてのaspxページが正常に機能しました。問題が環境問題であることを証明するために、同じコードを開発ボックスの新しいアプリケーションにデプロイしましたが、これは問題なく機能しました。

両方の環境(IISロールサービス、Windows Update、インストール済みアプリケーションなど)がまったく同じであることを確認するために一日を費やした後、404エラーページでリクエストのハンドラーが「StaticFile」であることに気付きました。

少しグーグルした後、私はタイトルのオプションに出くわしました

<system.webServer><modules runAllManagedModulesForAllRequests="true"></modules></system.webServer>

これは現在機能しているので、静的ルートなしで使用されるモジュールは、静的ルートなしでは呼び出されないと思います(私がナイーブである場合は許してください)。

問題は、私たちの開発環境では、web.configにこの属性がないということです。

では、なぜそれがなくても、あるサーバーでは機能し、別のサーバーでは機能しないのでしょうか。確かに、すべての要求に対してすべてのモジュールを呼び出すことは効率が悪くなります。

なぜこれが起こるのかについて誰かが何か考えを持っているなら、私は永遠に感謝するでしょう。私たちのステージング環境は現在機能していますが、私はあなたのことを正確に知らないのが嫌いです。

ありがとう!

4

1 に答える 1

1

最初に確認するのは、次の更新が新しい新しいステージング環境に適用されていることを確認することです。これは、既存の開発環境にすでに適用されている可能性があり、1つの環境が機能している理由と機能していない理由を説明します 。http:/ /support.microsoft.com/kb/980368

静的ファイルルーティング、上記の修正プログラム、および一般的な「拡張子のないルーティングの仕組み」の詳細については、次の記事を読むことをお勧めします:http: //blogs.msdn.com/b/tmarq/archive/2010/04/01/ asp-net-4-0-enables-routing-of-extensionless-urls-without-impacting-static-requests.aspx

于 2013-01-24T19:15:08.833 に答える