Skip to main content
 首页 » 编程设计

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

2024年01月13日30dflying

我有一个名为 UpdateSite() 的 Controller 操作,浏览到此操作是我启动(通常是自动的)数据收集过程的手动方式。

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

  1. 使用网络 API 执行几个网络数据请求
  2. 解析此数据以提取我可能需要的任何内容
  3. 如果一些数据是新的和相关的,将其存储在数据库中(使用 linq to sql)
  4. (可选)将一些数据发送回 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 文件夹或其任何子文件夹中的某些文件?如果是这样,它将回收 AppPool 并且请求将毫无机会地“崩溃”。