私は新しいソリューションを作成し、適切なターゲティング フレームワーク 4.0 をビルドしますが、それを実行すると、ブラウザが次のように表示されます。
リソースが見つかりません。説明: HTTP 404。探しているリソース (またはその依存関係の 1 つ) は、削除されたか、名前が変更されたか、一時的に利用できない可能性があります。次の URL を見直して、スペルが正しいことを確認してください。要求された URL: /
これをデバッグする方法についてのアイデアはありますか?
私は新しいソリューションを作成し、適切なターゲティング フレームワーク 4.0 をビルドしますが、それを実行すると、ブラウザが次のように表示されます。
リソースが見つかりません。説明: HTTP 404。探しているリソース (またはその依存関係の 1 つ) は、削除されたか、名前が変更されたか、一時的に利用できない可能性があります。次の URL を見直して、スペルが正しいことを確認してください。要求された URL: /
これをデバッグする方法についてのアイデアはありますか?
asp.net mvc 1.0 プロジェクト テンプレートに付属する default.aspx ページを追加してみてください。IIS 5(XP)を搭載したコンピューターでmvc 2をすぐに実行すると、同様の問題が発生しましたが、それでうまくいきました。
デフォルト.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 ページを追加する必要はありません。
新しい空の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 という名前のアクションを探していることがわかります。
新しい空のプロジェクトを作成するときは、Home コントローラーと Index アクションを作成し (空のプロジェクトにはありません)、Index アクションのビューも作成します。
私の推測では、IIS でフレームワークを再登録または有効にする必要があります。適切なフレームワーク ツリーから aspnet_regiis を実行してみてください。また、適切なフレームワーク バージョンが IIS Web 拡張機能で許可されていることを確認してください。