我们使用IIS构建了我们的n层应用程序,以使用Web API呈现RESTful服务。
不幸的是,当我们启动我们的应用程序视图,或者从URL运行网站时,有时它会运行,有时它会失败,并且ArugmentException指出其中一个字段为空。我们将参数异常作为保护 - 但显然类型字段在不应该出现时为空。
由于我们使用了基本的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时,它变得很好,并且不起作用 - 但是如果你继续踢它最终它会变得生动。
到目前为止,我们已经尝试过:
<modules runAllManagedModulesForAllRequests="true" />
欢迎任何进一步的想法 - 如果您需要任何其他代码,请告诉我,我会添加它(不知道可能需要什么)。
由于
答案 0 :(得分:1)
我会尝试在IIS下运行时调试Web应用程序,这将忽略IIS Express和IIS之间的任何差异(正确)。
您可以在w3wp.exe
进程运行时附加到它(Visual Studio,Debug - &gt; Attach)
调试启动代码时,您可能需要调用Debugger.Break()
作为临时助手,以允许Visual Studio附加到进程。