在IIS 7.0上托管时,混合WebForms / MVC Web Api应用程序非常慢

时间:2013-06-25 13:57:04

标签: asp.net-mvc iis configuration webforms asp.net-web-api

我有一个混合的WebForms / MVC Web Api应用程序,我在IIS 7.0上托管。它有两个主要页面 - Default.aspx和Main.aspx。其余的都是通过WEB api调用/ JSON / javascript完成的。它在我的本地机器上工作正常,但是当我们在服务器上发布它时,我们遇到了一些问题。

看起来它随机忽略了与服务器的连接。有时它工作正常,但有时永远不会加载,最终浏览器将显示网络连接错误。在这些“盲”时隙工作过程中,托管应用程序将不会做任何事情 - 就像它没有从IIS /客户端接收任何输入一样。在接下来的10分钟内它将再次正常工作。虽然我在这里看不到任何模式,但是当我使用指向页面的直接链接来解决它时,它似乎更稳定:http://webserver/AppX/Default.aspxhttp://webserver/AppX/Main.aspx

在同一个IIS服务器上,另一个webforms应用程序的应用程序运行正常。它们位于不同的应用程序池中 - 唯一的区别是第二个应用程序以经典模式托管,而第一个应用程序在集成模式下托管。将其切换到经典模式没有帮助。 我怀疑它与路由和应用程序的混合性质有关。

我研究了几个类似的问题,我在stackoverflow上找到了这个案例,并且已经尝试了以下内容:

  1. 切换应用程序池以启用32位应用程序。我编译了一切 对于任何平台,它也可以在64位模式下工作(当它工作时)。 没有帮助。
  2. 我告诉路由器忽略任何aspx页面:

        routes.IgnoreRoute("{resource}.axd/{*pathInfo}");
        routes.IgnoreRoute("{resource}.aspx/{*pathInfo}");
        routes.IgnoreRoute("{resource}.ashx/{*pathInfo}");
        routes.IgnoreRoute("");
        routes.IgnoreRoute("Images/favicon.ico");
    
        var route = routes.MapRoute(
            name: "Default",
            url: "{controller}/{action}/{id}",
            defaults: new { controller = "Home", action = "Index", id = UrlParameter.Optional }
        );
    
  3. 如果请求绕过上述忽略之一,则存在默认值 控制器将其重定向回Default.aspx:

  4. public class HomeController : ApiController { public HttpResponseMessage Index() { var response = Request.CreateResponse(HttpStatusCode.Unused); response.Headers.Location = new Uri("Default.aspx", UriKind.Relative); return response; } }

    1. 以防我在web.config
    2. 中将最多连接数增加到500

      上面提到的任何内容都没有帮助。任何想法,我还能尝试什么?感谢。

1 个答案:

答案 0 :(得分:0)

我建议在IIS服务器上启用失败的请求跟踪。

http://www.iis.net/learn/troubleshoot/using-failed-request-tracing/troubleshooting-failed-requests-using-tracing-in-iis

另外,请检查服务器上的IIS日志和HTTPError日志,以获取可能出错的提示。