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

标签 c# .net-core asp.net-core-2.0

我需要通过 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/

相关文章:

c# - mvc core 2.0,如何通过配置使用 appSettings.json 文件

C# 绘制 Oracle Spatial 几何图形

c# - 在 .net Core 中调用 SOAP 服务

c# - ASP.NET Core 2.0 为同一端点结合了 Cookie 和承载授权

c# - 没有 *.exe 文件的 .NET Core 控制台项目如何在 Windows 操作系统上运行?

asp.net - .Net Core Cookie 身份验证在 IIS 中托管时不起作用

c# - Asp.net core 2.0 Configure.Services<model>() 绑定(bind)不适用于用户 secret

c# - 如何从 mysql 数据库中删除多余的记录并且只有 1 行,

c# - 为什么我的 C# 代码不能按预期工作(数组转换,新手)

c# - 在 wpf 中处理点击序列的最佳方法