2010年にasp.net mvc 2プロジェクトをそのまま実行するとエラーが発生する
-
05-07-2019 - |
質問
iは新しいソリューションを作成し、優れたターゲティングフレームワーク4.0を構築しますが、実行すると、ブラウザに次のように表示されます。
リソースが見つかりません。 説明:HTTP404。探しているリソース(またはその依存関係の1つ)が削除されたか、名前が変更されたか、一時的に使用できなくなっている可能性があります。次のURLを確認して、スペルが正しいことを確認してください。 要求されたURL:/
これをデバッグする方法についてのアイデアはありますか?
解決
asp.net mvc 1.0プロジェクトテンプレートに付属しているdefault.aspxページを追加してみてください。 IIS 5(XP)を搭載したコンピューターでmvc 2をそのまま実行すると同様の問題が発生しましたが、それでうまくいきました。
Default.aspx:
<%@ Page Language="C#" AutoEventWireup="true" CodeBehind="Default.aspx.cs" Inherits="YourNamespace.Website.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.Website
{
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);
}
}
}
他のヒント
上記のdefault.aspxページを追加する必要はありません。
新しい Empty ASP.NET MVC 2アプリケーションを「そのまま」追加して実行すると、ブラウザにこの404メッセージが表示されます。
これは、global.asaxで定義されているデフォルトルートのためです。
routes.MapRoute(
"Default", // Route name
"{controller}/{action}/{id}", // URL with parameters
new { controller = "Home", action = "Index", id = UrlParameter.Optional } // Parameter defaults
);
HomeというコントローラーとIndexというアクションを探していることがわかります。
新しい empty プロジェクトを作成するときは、Homeコントローラーとインデックスアクションを作成する必要があります(空のプロジェクトには存在しません)、そしてビューを作成しますインデックスアクションにも。
私の推測では、IISでフレームワークを再登録または有効にする必要があります。 適切なフレームワークツリーからaspnet_regiisを実行するか、IIS Web拡張の下で適切なフレームワークバージョンが許可されていることを確認してください。