C# ASP.NET MVC在执行某些web请求/响应任务后返回View()时挂起

C# ASP.NET MVC在执行某些web请求/响应任务后返回View()时挂起,c#,.net,asp.net-mvc,C#,.net,Asp.net Mvc,我有一个名为UpdateSite()的控制器操作,浏览该操作是我启动(通常是自动的)数据收集过程的一种手动方式 这是一个相当简单的流程,具有以下工作流程: 使用web API对数据执行两次web请求 解析此数据以提取我可能需要的任何内容 如果某些数据是新的和相关的,则将其存储在数据库中(使用linq to sql) (可选)将一些数据发送回API,让它知道我刚刚做了什么 以下是该方法的人为示例: public ActionResult UpdateSite(string key)

我有一个名为UpdateSite()的控制器操作,浏览该操作是我启动(通常是自动的)数据收集过程的一种手动方式

这是一个相当简单的流程,具有以下工作流程:

  • 使用web API对数据执行两次web请求
  • 解析此数据以提取我可能需要的任何内容
  • 如果某些数据是新的和相关的,则将其存储在数据库中(使用linq to sql)
  • (可选)将一些数据发送回API,让它知道我刚刚做了什么
  • 以下是该方法的人为示例:

    public ActionResult UpdateSite(string key)
            {
                if(key == KEY)
                {
                    log4net.Config.XmlConfigurator.Configure();
                    ILog log = LogManager.GetLogger("Default");
                    string tUserName = ConfigurationManager.AppSettings["UName"];
                    string tPassword = ConfigurationManager.AppSettings["UPassword"];
    
                    ApiService apiSvc = new ApiService(tUserName, tPassword, new InterpreterFactory(),
                                                                        log);
                    ControlPanel controller = new ControlPanel(Service, apiSvc, new DefaultAppStatusService(), log);
    
                    CaptureResults results = controller.Capture();
                    controller.EnrichData(results, new EnrichmentFactory(log));
    
                    var newData = controller.PersistData(results);
                    controller.ReplyWithNewData(newData);
                }
                return View();
            }
    
    所有这些似乎都运行良好,它完成了自己的工作,从外部API中提取所需的数据,并将其写入数据库等

    问题是在“return View()”上,页面没有在浏览器中完全加载,并且站点永久挂起,迫使我重新启动开发服务器。页面上只有一点文字


    我完全不知道发生了什么事。还有人遇到过这样的事情吗?有什么想法吗?

    这个过程会改变bin文件夹或其任何子文件夹中的某些文件吗?如果是这样的话,它将回收应用程序池,请求将“崩溃”而不会有任何机会。

    此过程是否会更改bin文件夹或其任何子文件夹中的某些文件?如果是这样,它将回收应用程序池,请求将“崩溃”而不会有任何机会。

    这似乎是因为此进程使用线程来完成其任务(它必须接触某些网站以获取信息,因此它会生成线程来完成此任务)我怎样才能在保持线程的同时避免这个问题?你最终找到了解决方案吗?我在browserLink上遇到了一些问题,它在某些页面上产生了IIS上100%的CPU使用率。这似乎是因为这个进程使用线程来完成它的任务(它必须接触一些网站来获取信息,因此它会产生线程来完成这项工作)我如何才能保持theading在那里,但避免这个问题?你最终找到了解决方案吗?我在browserLink上遇到了一些问题,在某些页面上,它在IIS上产生了100%的CPU使用率。