2


0

IIS7でのASP.NET MVC 2 Webサイトの実行に関する問題

ASP.NET MVC 2 WebサイトをVS2010 beta 2からIIS7に展開しようとしています。 パブリッシュは正常に機能しますが、どのルートも機能しないため、URL http:// localhost / myapp / Home / Indexにアクセスするとエラーが発生します。

_ HTTPエラー404.0-見つかりません探しているリソースは削除されたか、名前が変更されたか、一時的に利用できません。 _

管理パイプラインモードが統合に設定された.NET 4フレームワーク用に構成されたアプリプールを使用している仮想ディレクトリに展開しています。 また、[基本設定]→ [接続のテスト]に移動すると、両方のテストに合格します。 私が理解したことから、それはうまくいくはずですか?

VS2008からのNerd Dinnerの展開に問題はありませんが、正常に機能します。

2 Answer


0


パブリッシュに適切なMVC dllを含めていますか?

MVCアプリケーションの閲覧で問題が発生したことがあるのは、binフォルダーにMVC dllを含めなかったためです。


0


ASP.NET MVCでの経験から、* IISが正しく機能するためには `Default.aspx`ページが必要であることがわかりました*。 ASP.NET MVC 1テンプレートに含まれていたページを使用しています。 残念ながら、ASP.NET MVC 2にはこのページが含まれていないため(私の知る限り)、以下をプロジェクトに追加する必要があります。

Default.aspx:

<%@ Page Language="C#" AutoEventWireup="true" CodeBehind="Default.aspx.cs" Inherits="YourNamespace._Default" %>

<%-- Please do not delete this file. It is used to ensure that ASP.NET MVC is activated by IIS when a user makes a "/" request to the server. --%>

Default.aspx.cs:

using System.Web;
using System.Web.Mvc;
using System.Web.UI;

namespace YourNamespace
{
    public partial class _Default : Page
    {
        public void Page_Load(object sender, System.EventArgs e)
        {
            // Change the current path so that the Routing handler can correctly interpret
            // the request, then restore the original path so that the OutputCache module
            // can correctly process the response (if caching is enabled).

            string originalPath = Request.Path;
            HttpContext.Current.RewritePath(Request.ApplicationPath, false);
            IHttpHandler httpHandler = new MvcHttpHandler();
            httpHandler.ProcessRequest(HttpContext.Current);
            HttpContext.Current.RewritePath(originalPath, false);
        }
    }
}