我们使用 IIS 构建了我们的 n 层应用程序,以使用 Web API 呈现 RESTful 服务。
不幸的是,当我们启动应用程序视图或从 URL 运行网站时,有时它可以工作,有时它会失败,并出现 ArugmentException 说明其中一个字段为空。然后我们将参数异常作为保护 - 但显然类型字段在不应该出现时显示为 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 或 Visual Studio 上下文之外的 IIS Express 时,它会变得不稳定并且无法正常工作 - 但是如果你继续使用它,它最终会变得栩栩如生。
到目前为止,我们已经尝试过:
- 删除我们可以找到的对 ASP.NET 2.x 的任何引用(一切都建立在 .NET 4.5 上)
- 将以下内容添加到 Web.Config:
<modules runAllManagedModulesForAllRequests="true" />
欢迎任何进一步的想法 - 如果您需要任何其他代码,请告诉我,我会添加它(不确切知道可能需要什么)。
谢谢