gpt4 book ai didi

c# - 网络核心 : how to separate controllers by ports?

转载 作者:行者123 更新时间:2023-12-04 11:41:48 25 4
gpt4 key购买 nike

我需要通过 netcore2.0 自托管 Web 服务中的端口来分隔 Controller 。

例子:

有 2 个端口(p1 和 p2)和 3 个 Controller (c1、c2、c3)。
需求方案:c1 处理来自 p1 的请求,但 c2 和 c3 将处理来自 p2 的请求。

关于我该怎么做的任何想法?

最佳答案

在 GitHub 上得到答案 https://github.com/aspnet/Mvc/issues/8502

[PortActionConstraint(5000)]
public class HomeController : Controller
{
...
}

[AttributeUsage(AttributeTargets.Class)]
public class PortActionConstraint : ActionMethodSelectorAttribute
{
public PortActionConstraint(int port)
{
Port = port;
}

public int Port { get; }

public override bool IsValidForRequest(RouteContext routeContext, ActionDescriptor action)
{
//external port
var externalPort = routeContext.HttpContext.Request.Host.Port;
//local port
var localPort = routeContext.HttpContext.Connection.LocalPort;
//write here your custom logic. for example
return Port == localPort ;
}
}

关于c# - 网络核心 : how to separate controllers by ports?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52516744/

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