IIS を使用して n 層アプリケーションを構築し、Web API を使用して RESTful サービスを提供しました。
残念ながら、アプリケーション ビューを起動したり、URL から Web サイトを実行したりすると、フィールドの 1 つが null であることを示す ArugmentException が発生して、機能する場合と失敗する場合があります。次に、保護として引数の例外を配置しましたが、明らかに、型フィールドが null であってはならないときに null として表示されます。
基本的な Web API テンプレートを使用したため、Global.asax.cs に次の行があります。
RouteConfig.RegisterRoutes(RouteTable.Routes);
次に呼び出します:
public class RouteConfig
{
public static void RegisterRoutes(RouteCollection routes)
{
routes.IgnoreRoute("{resource}.axd/{*pathInfo}");
routes.MapRoute(
name: "Default",
url: "{controller}/{action}/{id}",
defaults: new { controller = "Home", action = "Index", id = UrlParameter.Optional }
);
}
}`
ここで強調しておきたいのは、これは [ほぼ] Visual Studio/IIS Express 内で常に機能するということです。しかし、それを適切な IIS に、またはビジュアル スタジオ コンテキストの外部の IIS Express に実際に展開すると、不安定になり、機能しなくなります。
これまでのところ、次のことを試しました。
- 見つけた ASP.NET 2.x への参照をすべて削除します (すべて .NET 4.5 上に構築されています)。
- 以下を Web.Config に追加します。
<modules runAllManagedModulesForAllRequests="true" />
さらなるアイデアは大歓迎です。追加のコードが必要な場合はお知らせください。追加します (何が必要になるか正確にはわかりません)。
ありがとう