C# IIS启动行为flakey(Web API)
我们已经使用IIS构建了n层应用程序,以使用Web API提供RESTful服务 不幸的是,当我们启动应用程序视图或从URL运行网站时,有时它可以工作,有时它会失败,异常情况是其中一个字段为空。我们将参数异常设置为保护,但很明显,类型字段在不应该设置的情况下显示为null 由于我们使用了基本Web API模板,因此Global.asax.cs中有以下行:C# IIS启动行为flakey(Web API),c#,asp.net-mvc-4,iis-7.5,C#,Asp.net Mvc 4,Iis 7.5,我们已经使用IIS构建了n层应用程序,以使用Web API提供RESTful服务 不幸的是,当我们启动应用程序视图或从URL运行网站时,有时它可以工作,有时它会失败,异常情况是其中一个字段为空。我们将参数异常设置为保护,但很明显,类型字段在不应该设置的情况下显示为null 由于我们使用了基本Web API模板,因此Global.asax.cs中有以下行: RouteConfig.RegisterRoutes(RouteTable.Routes) 这反过来又要求: public class Rou
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:
任何进一步的想法都是受欢迎的-如果您需要任何额外的代码,请告诉我,我会添加它(不知道确切需要什么)
谢谢我将尝试调试在IIS下运行的web应用程序,这将忽略IIS Express和IIS之间的任何差异(正确)
您可以在w3wp.exe进程运行时附加到该进程(Visual Studio,调试->附加)
调试启动代码时,可能需要包括对Debugger.Break()的调用
作为临时帮助程序,允许Visual Studio附加到进程。您的应用程序池是否设置为.net 4.0?是否有记录到事件查看器的内容?确保关闭模拟。谢谢-事实证明,这确实是IIS加载某些程序集时所需的相关自定义,但是,当在开发环境之外运行时,IIS太迟钝了!