我有一个名为 UpdateSite() 的 Controller 操作,浏览到此操作是我启动(通常是自动的)数据收集过程的手动方式。
这是一个相当简单的过程,具有以下工作流程:
- 使用网络 API 执行几个网络数据请求
- 解析此数据以提取我可能需要的任何内容
- 如果一些数据是新的和相关的,将其存储在数据库中(使用 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 文件夹或其任何子文件夹中的某些文件?如果是这样,它将回收 AppPool 并且请求将毫无机会地“崩溃”。
