gpt4 book ai didi

.net - IIS 认为 web 服务是空闲的

转载 作者:行者123 更新时间:2023-12-02 02:28:06 29 4
gpt4 key购买 nike

问题是,即使我将线程设置为“thrd.IsBackground = false”,iis 也不认为它正在运行,即使这是一个长时间运行的进程。如果我不关闭应用程序池的空闲关闭,它将关闭,因为它认为它是空闲的。同样,如果我部署一个新版本,它会中止所有正在运行的线程,而不是在回收和使用新代码之前等待所有进程真正空闲。我在这里做错了什么?这是我的网络服务代码:

  /// <summary>
/// Summary description for LetterInitiateWS
/// </summary>
[WebService(Namespace = "http://tempuri.org/")]
[WebServiceBinding(ConformsTo = WsiProfiles.BasicProfile1_1)]
[System.ComponentModel.ToolboxItem(false)]
// To allow this Web Service to be called from script, using ASP.NET AJAX, uncomment the following line.
// [System.Web.Script.Services.ScriptService]
public class LetterInitiateWS : System.Web.Services.WebService
{

private static Processor processor = new Processor();
[WebMethod]
public void ExecuteBulkRun()
{
var thrd = new Thread(() => ThreadExecuteBulkRun());
thrd.IsBackground = false;
thrd.Start();

}

[WebMethod]
public void ExecuteTemplateBulkRun(string templateCategory, string TemplateType)
{
var thrd = new Thread(() => ThreadExecuteTemplateBulkRun(templateCategory, TemplateType));
thrd.IsBackground = false;
thrd.Start();

}

private void ThreadExecuteBulkRun()
{
processor.ExecuteBulkRun();
}
private void ThreadExecuteTemplateBulkRun(string templateCategory, string TemplateType)
{
processor.ExecuteTemplateBulkRun(templateCategory, TemplateType);
}

}
}

最佳答案

IIS 不够稳定,无法运行长时间运行的进程。它专为请求-响应类型的交互而设计。

如果您需要长时间运行某些东西,请在 Windows 服务中运行它。您可以使用远程处理或消息队列从您的网络服务启动它。

关于.net - IIS 认为 web 服务是空闲的,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4939224/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com