Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/asp.net-mvc/17.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Asp.net mvc 混合WebForms/MVC Web Api应用程序在IIS 7.0上托管时速度非常慢_Asp.net Mvc_Iis_Configuration_Webforms_Asp.net Web Api - Fatal编程技术网

Asp.net mvc 混合WebForms/MVC Web Api应用程序在IIS 7.0上托管时速度非常慢

Asp.net mvc 混合WebForms/MVC Web Api应用程序在IIS 7.0上托管时速度非常慢,asp.net-mvc,iis,configuration,webforms,asp.net-web-api,Asp.net Mvc,Iis,Configuration,Webforms,Asp.net Web Api,我有一个混合的WebForms/mvcwebapi应用程序,我在iis7.0上托管它。它有两个主页–Default.aspx和main.aspx。其余的都是通过webapi调用/JSON/javascript完成的。它在我的本地机器上运行良好,但在服务器上发布时遇到了一些问题 看起来它会随机忽略与服务器的连接。有时它工作正常,但有时永远不会加载,最终浏览器将显示网络连接错误。在这些“盲”时间段内,托管应用程序的工作过程不会做任何事情——就像它没有从IIS/客户端接收任何输入一样。在接下来的10分

我有一个混合的WebForms/mvcwebapi应用程序,我在iis7.0上托管它。它有两个主页–Default.aspx和main.aspx。其余的都是通过webapi调用/JSON/javascript完成的。它在我的本地机器上运行良好,但在服务器上发布时遇到了一些问题

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

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

我研究了在stackoverflow上发现的几个类似案例,并尝试了以下几点:

  • 切换应用程序池以启用32位应用程序。我编辑所有的东西 对于任何平台,它也可以在64位模式下工作。 没有帮助
  • 我告诉路由器忽略任何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 }
        );
    
  • 如果请求绕过上述忽略之一,则存在默认值 将其重定向回Default.aspx的控制器:

  • 
    公共类HomeController:ApiController
    {
    公共HttpResponseMessage索引()
    {
    var response=Request.CreateResponse(HttpStatusCode.Unused);
    response.Headers.Location=新Uri(“Default.aspx”,UriKind.Relative);
    返回响应;
    }
    }
    

  • 以防我在web.config中将最大连接数增加到500

  • 上面提到的一切都无济于事。有什么好主意,我还能试试吗?谢谢。

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


    此外,请检查服务器上的IIS日志和HTTPError日志,以了解可能出现问题的提示。

    是否已解决此问题?