gpt4 book ai didi

ASP.NET 如何一次只处理来自指定用户的 1 个 HTTP 处理程序?

转载 作者:可可西里 更新时间:2023-11-01 17:15:48 25 4
gpt4 key购买 nike

我有下一个问题:我一次只需要处理来自每个用户的 1 个请求。假设服务器将每个用户标识为 UserID,在查询字符串中发送。如何使服务器像 FIFO 一样工作(直到前一个请求完全处理后才开始处理下一个请求)?我应该在 HTTP 处理程序中使用命名的互斥量并通过 UserID 将名称分配给互斥量吗?

提前致谢,瓦伦丁

最佳答案

当第一个请求到来时,在Session中设置一个flag。只有在第一个请求的处理完成后才重置此标志。

如果用户在第一个请求未完成的情况下再次请求,只需从 ProcessRequest() 返回即可拒绝该请求,而无需执行任何进一步的代码行。此外,您可以使用适当的状态消息回复用户。

编辑

using System;
using System.Collections.Generic;
using System.Text;
using System.Web;
using System.Web.SessionState;

namespace MyHandlers
{
public class MyHttpHander : IHttpHandler,IRequiresSessionState
{
public bool IsReusable
{
get { return true; }
}

public void ProcessRequest(HttpContext context)
{
context.Response.Write("<h1><b>HttpHandler Test</b></h1>");
context.Session["Test"] = "Invoke a session in HttpHandler.";
context.Response.Write(context.Session["Test"]+"<br>");
context.Response.Write("<a href='HttpHandlerCsharp.aspx'><b>return</b></a>");
}
}
}

关于ASP.NET 如何一次只处理来自指定用户的 1 个 HTTP 处理程序?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2447417/

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