私は、既存の MVC アプリケーションを機能させるために 1 日を費やしました。
次のような状況があります。
1) カスタム領域を持つ既存の ASP.Net MVC アプリケーションの作業を開始しました
2) オフィスでうまくいっている
3) 私は自宅にいて、VPN 接続を行い、TFS から最新のコードを取得しました。
4) 正常にビルドされていますが、Visual Studio 2012 内から実行しようとすると、登録された領域が表示されません。
HTTP 404. 探しているリソース (またはその依存関係の 1 つ) は、削除されたか、名前が変更されたか、一時的に利用できない可能性があります。以下をご確認ください
URL を入力し、スペルが正しいことを確認してください。
要求された URL に対して既定のドキュメントが構成されておらず、ディレクトリの参照がサーバーで有効になっていません。
5) 通常の MVC Web サイト (AreaRegistrations なし) を作成し、Visual Studio 2012 で実行しましたが、エラーは発生しません。
6) RouteDebuggerを試しましたが、次のエラーが発生し続けます。
シーケンスには要素が含まれていません
私もそれを解決しようとして行き詰まりました。実際に足を踏み入れて、どこが失敗しているかを確認する別の方法があれば、それが役立ちます。
実際の Area フォルダー: MyProject\Areas\MyCustomArea 私が持っている
MyProject\Areas\MyCustomArea\AreaRegistration.cs:
using Mvc = System.Web.Mvc;
namespace MyProject.Areas.MyCustom
{
public class AreaRegistration : Mvc.AreaRegistration
{
public override string AreaName
{
get { return "MyCustomArea"; }
}
public override void RegisterArea(Mvc.AreaRegistrationContext context)
{
RouteConfig.RegisterRoutes(context);
}
}
}
そして MyProject\Areas\MyCustomArea\RouteConfig.cs :
using System.Web.Mvc;
using System.Web.Optimization; // <-- DOES THIS REFERENCE HAVE AN IMPACT?
namespace MyProject.Areas.MyCustomArea
{
public class RouteConfig
{
public static void RegisterRoutes(AreaRegistrationContext context)
{
context.MapRoute(
"MyCustomArea_Default",
"MyCustomArea/{controller}/{action}/{id}",
defaults: new { action = "Index", id = UrlParameter.Optional },
namespaces: new[] { "MyProject.Areas.MyCustomArea.Controllers" });
}
}
}
私の App_Start フォルダーにはRoute.config.csファイルがありません
次のようなMyProject\packages.configがあります。
<?xml version="1.0" encoding="utf-8"?>
<packages>
<package id="Microsoft.Web.Infrastructure" version="1.0.0.0" targetFramework="net45" />
<package id="RazorGenerator.Mvc" version="2.2.2" targetFramework="net45" />
<package id="WebActivatorEx" version="2.0.5" targetFramework="net45" />
</packages>
System.Web.Optimization を使用しています
私のWeb.configファイルには次のものがあります。
<runtime>
<assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
<dependentAssembly>
<assemblyIdentity name="System.Web.Helpers" publicKeyToken="31bf3856ad364e35" />
<bindingRedirect oldVersion="1.0.0.0-2.0.0.0" newVersion="2.0.0.0" />
</dependentAssembly>
<dependentAssembly>
<assemblyIdentity name="System.Web.Mvc" publicKeyToken="31bf3856ad364e35" />
<bindingRedirect oldVersion="0.0.0.0-4.0.0.0" newVersion="4.0.0.0" />
</dependentAssembly>
<dependentAssembly>
<assemblyIdentity name="System.Web.WebPages" publicKeyToken="31bf3856ad364e35" />
<bindingRedirect oldVersion="0.0.0.0-2.0.0.0" newVersion="2.0.0.0" />
</dependentAssembly>
<dependentAssembly>
<assemblyIdentity name="WebGrease" publicKeyToken="31bf3856ad364e35" culture="neutral" />
<bindingRedirect oldVersion="0.0.0.0-1.5.2.14234" />
</dependentAssembly>
<dependentAssembly>
<assemblyIdentity name="EntityFramework" publicKeyToken="b77a5c561934e089" culture="neutral" />
<bindingRedirect oldVersion="0.0.0.0-5.0.0.0" newVersion="5.0.0.0" />
</dependentAssembly>
</assemblyBinding>
</runtime>
<system.web>
<compilation debug="true" targetFramework="4.5" />
<httpRuntime targetFramework="4.5" />
<pages>
<namespaces>
<add namespace="System.Web.Helpers" />
<add namespace="System.Web.Mvc" />
<add namespace="System.Web.Mvc.Ajax" />
<add namespace="System.Web.Mvc.Html" />
<add namespace="System.Web.Optimization" />
<add namespace="System.Web.Routing" />
<add namespace="System.Web.WebPages" />
<add namespace="Kendo.Mvc.UI" />
</namespaces>
</pages>
</system.web>
それを機能させるために何かする必要があるかもしれませんが、それが職場で機能し、影響がある場合は RazorGenerator と Web 最適化を使用していることを念頭に置いてください。
長すぎたらごめんなさい