私は最近問題を起こしている単純な MVC 3 webapp を持っています。彼らの振る舞いに関連していると思われる2つの問題がありました。
開発中は、localhost (http://localhost:53268/) で正常に起動し、インデックスに対して機能しますが、それ以外のことを行うと IIS が 404 を返し、適切な URL へのリダイレクトを無視します。
現在、本番環境では、動作が異なります。ここでも、インデックス ページは正常に機能し、適切な URL を持っていますが、他のページ (リンクを介して、または URL に直接アクセス) は localhost (https://localhost/) にリダイレクトされます。奇妙なことに、私にとっては、開発中は正常に機能しています (通常 404 を取得したときに表示されるはずの内容が表示されます) が、他のマシンではまったく何も表示されません。
これは退職した同僚から受け継いだものでしたが、IIS Express を使用して開発側から機能させるようにというアドバイスがありました。これは以前はすでに本番環境で機能していましたが、現在は... それほどではありません。
編集 global.aspx ファイル
public class MvcApplication : System.Web.HttpApplication
{
public static void RegisterGlobalFilters(GlobalFilterCollection filters)
{
filters.Add(new ElmahHandleErrorAttribute());
filters.Add(new HandleErrorAttribute());
}
public static void RegisterRoutes(RouteCollection routes)
{
routes.IgnoreRoute("{resource}.axd/{*pathInfo}");
routes.MapRoute(
"Default", // Route name
"{controller}/{action}/{id}", // URL with parameters
new { controller = "Home", action = "Index", id = UrlParameter.Optional } // Parameter defaults
);
}
protected void Application_Start()
{
AreaRegistration.RegisterAllAreas();
RegisterGlobalFilters(GlobalFilters.Filters);
RegisterRoutes(RouteTable.Routes);
}
}
編集 それを理解しました。Web.Config とサーバーに問題があり、間違ったものを取得していたことが判明しました。今は正常に動作します。