gpt4 book ai didi

c# - 如何在 IIS 下使用 HTTP 处理程序处理长时间运行的请求?

转载 作者:太空狗 更新时间:2023-10-29 21:35:42 27 4
gpt4 key购买 nike

我需要在 IIS 中处理长时间运行的请求,处理请求本身非常轻量级,但主要由于 IO 需要花费大量时间。基本上我需要查询另一台服务器,有时它会查询第三台服​​务器。所以我想同时处理尽可能多的请求。为此,我需要异步处理请求,我该如何正确处理?

使用 Socket 类我可以很容易地写出类似这样的东西:

// ..listening code
// ..Accepting code

void CalledOnRecive(Request request)
{
//process the request a little
Context context = new Context()
context.Socket = request.Socket;
remoteServer.Begin_LongRunningDemonicMethod(request.someParameter, DoneCallBack, context);
}

void DoneCallBack( )
{
IAsyncresult result = remoteServer.Begin_CallSomeVeryLongRunningDemonicMethod( request.someParameter, DoneCallBack, context);

Socket socket = result.Context.Socket;
socket.Send(result.Result);
}

在上面的例子中,我一调用“Begin...”方法就释放了线程,而在另一个线程上发送响应,因此可以轻松实现非常高的并发。如何在 IIS 内的 HTTP 处理程序中执行相同的操作?

最佳答案

您可以使用 IHttpAsyncHandler 实现 HttpHandler . MSDN 有一个很好的演练,其中包含有关如何执行此操作的示例 here .

关于c# - 如何在 IIS 下使用 HTTP 处理程序处理长时间运行的请求?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8719180/

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