Service-Fabric 绑定到多个端点

2023-12-29

是否可以绑定服务结构应用程序来侦听多个端口?

基本上,我试图拥有一个面向公众的服务,它侦听 http:80 和 https:443,并将任何 http 请求重定向到 https。

我创建了一个新的 ASP.net Core 服务,它单独工作正常。 IE。使用 SSL 443 或非 SSL 80,但是当我添加两者时ServiceInstanceListeners它只是失败了!

Service Fabric Explorer 在多次超时后显示以下错误:

Unhealthy event: SourceId='System.RA', Property='ReplicaOpenStatus', HealthState='Warning', ConsiderWarningAsError=false.
Replica had multiple failures in API call: IStatelessServiceInstance.Open(); Error = System.Fabric.FabricElementAlreadyExistsException (-2146233088)
Unique Name must be specified for each listener when multiple communication listeners are used
   at Microsoft.ServiceFabric.Services.Communication.ServiceEndpointCollection.AddEndpointCallerHoldsLock(String listenerName, String endpointAddress)
   at Microsoft.ServiceFabric.Services.Communication.ServiceEndpointCollection.AddEndpoint(String listenerName, String endpointAddress)
   at Microsoft.ServiceFabric.Services.Runtime.StatelessServiceInstanceAdapter.d__13.MoveNext()
--- End of stack trace from previous location where exception was thrown ---
   at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task)
   at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)
   at Microsoft.ServiceFabric.Services.Runtime.StatelessServiceInstanceAdapter.d__0.MoveNext()

这很奇怪,因为两个听众都有不同的名字——看起来是这样。我是否应该在某个地方设置我错过的侦听器名称?

我为此使用 Asp.net Core 模板。我的无状态服务代码如下:

internal sealed class Web : StatelessService
{
    public Web(StatelessServiceContext context)
        : base(context)
    { }

    /// <summary>
    /// Optional override to create listeners (like tcp, http) for this service instance.
    /// </summary>
    /// <returns>The collection of listeners.</returns>
    protected override IEnumerable<ServiceInstanceListener> CreateServiceInstanceListeners()
    {
        return new ServiceInstanceListener[]
        {
            new ServiceInstanceListener(serviceContext =>
                new WebListenerCommunicationListener(serviceContext, "ServiceEndpointHttps", url =>
                {
                    ServiceEventSource.Current.ServiceMessage(serviceContext, $"Starting WebListener on {url}");

                    return new WebHostBuilder()
                                .UseWebListener()
                                .ConfigureServices(
                                    services => services
                                        .AddSingleton<StatelessServiceContext>(serviceContext))
                                .UseContentRoot(Directory.GetCurrentDirectory())
                                .UseStartup<Startup>()
                                .UseUrls(url)
                                .Build();
                })),


            new ServiceInstanceListener(serviceContext =>
                new WebListenerCommunicationListener(serviceContext, "ServiceEndpointHttp", url =>
                {
                    ServiceEventSource.Current.ServiceMessage(serviceContext, $"Starting WebListener on {url}");

                    return new WebHostBuilder()
                                .UseWebListener()
                                .ConfigureServices(
                                    services => services
                                        .AddSingleton<StatelessServiceContext>(serviceContext))
                                .UseContentRoot(Directory.GetCurrentDirectory())
                                .UseStartup<Startup>()
                                .UseUrls(url)
                                .Build();
                }))
        };
    }
}

我需要将名称设置为ServiceInstanceListener其中有构造函数

public ServiceInstanceListener(Func<StatelessServiceContext, ICommunicationListener> createCommunicationListener, string name = "");

我没有意识到它有额外的参数:)

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Service-Fabric 绑定到多个端点 的相关文章

  • 结构化绑定中缺少类型信息

    我刚刚了解了 C 中的结构化绑定 但有一件事我不喜欢 auto x y some func is that auto正在隐藏类型x and y 我得抬头看看some func的声明来了解类型x and y 或者 我可以写 T1 x T2 y
  • BASIC 中的 C 语言中的 PeekInt、PokeInt、Peek、Poke 等效项

    我想知道该命令的等效项是什么Peek and Poke 基本和其他变体 用 C 语言 类似PeekInt PokeInt 整数 涉及内存条的东西 我知道在 C 语言中有很多方法可以做到这一点 我正在尝试将基本程序移植到 C 语言 这只是使用
  • 在模板类中声明模板友元类时出现编译器错误

    我一直在尝试实现我自己的链表类以用于教学目的 我在迭代器声明中指定了 List 类作为友元 但它似乎无法编译 这些是我使用过的 3 个类的接口 Node h define null Node
  • 调用 McAfee 病毒扫描引擎

    我收到客户的请求 要求使用他们服务器上的 McAfee 病毒扫描将病毒扫描集成到应用程序中 我做了一些调查 发现 McScan32 dll 是主要的扫描引擎 它导出各种看起来有用的函数 我还发现提到了 McAfee Scan Engine
  • 根据属性的类型使用文本框或复选框

    如果我有这样的结构 public class Parent public string Name get set public List
  • 通过引用传递 [C++]、[Qt]

    我写了这样的东西 class Storage public Storage QString key const int value const void add item QString int private QMap
  • C++ 多行字符串原始文字[重复]

    这个问题在这里已经有答案了 我们可以像这样定义一个多行字符串 const char text1 part 1 part 2 part 3 part 4 const char text2 part 1 part 2 part 3 part 4
  • 重载 (c)begin/(c)end

    我试图超载 c begin c end类的函数 以便能够调用 C 11 基于范围的 for 循环 它在大多数情况下都有效 但我无法理解和解决其中一个问题 for auto const point fProjectData gt getPoi
  • 结构体的内存大小不同?

    为什么第一种情况不是12 测试环境 最新版本的 gcc 和 clang 64 位 Linux struct desc int parts int nr sizeof desc Output 16 struct desc int parts
  • x:将 ViewModel 方法绑定到 DataTemplate 内的事件

    我基本上问同样的问题这个人 https stackoverflow com questions 10752448 binding to viewmodels property from a template 但在较新的背景下x Bind V
  • C 编程:带有数组的函数

    我正在尝试编写一个函数 该函数查找行为 4 列为 4 的二维数组中的最大值 其中二维数组填充有用户输入 我知道我的主要错误是函数中的数组 但我不确定它是什么 如果有人能够找到我出错的地方而不是编写新代码 我将不胜感激 除非我刚去南方 我的尝
  • 空指针与 int 等价

    Bjarne 在 C 编程语言 中写道 空指针与整数零不同 但 0 可以用作空指针的指针初始值设定项 这是否意味着 void voidPointer 0 int zero 0 int castPointer reinterpret cast
  • 为什么 isnormal() 说一个值是正常的,而实际上不是?

    include
  • 如何在 Android 中使用 C# 生成的 RSA 公钥?

    我想在无法假定 HTTPS 可用的情况下确保 Android 应用程序和 C ASP NET 服务器之间的消息隐私 我想使用 RSA 来加密 Android 设备首次联系服务器时传输的对称密钥 RSA密钥对已在服务器上生成 私钥保存在服务器
  • 编译时展开 for 循环内的模板参数?

    维基百科 here http en wikipedia org wiki Template metaprogramming Compile time code optimization 给出了 for 循环的编译时展开 我想知道我们是否可以
  • 有没有办法让 doxygen 自动处理未记录的 C 代码?

    通常它会忽略未记录的 C 文件 但我想测试 Callgraph 功能 例如 您知道在不更改 C 文件的情况下解决此问题的方法吗 设置变量EXTRACT ALL YES在你的 Doxyfile 中
  • 对于某些 PDF 文件,LoadIFilter() 返回 -2147467259

    我正在尝试使用 Adob e IFilter 搜索 PDF 文件 我的代码是用 C 编写的 我使用 p invoke 来获取 IFilter 的实例 DllImport query dll SetLastError true CharSet
  • 当文件流没有新数据时如何防止fgets阻塞

    我有一个popen 执行的函数tail f sometextfile 只要文件流中有数据显然我就可以通过fgets 现在 如果没有新数据来自尾部 fgets 挂起 我试过ferror and feof 无济于事 我怎样才能确定fgets 当
  • C++ 中的参考文献

    我偶尔会在 StackOverflow 上看到代码 询问一些涉及函数的重载歧义 例如 void foo int param 我的问题是 为什么会出现这种情况 或者更确切地说 你什么时候会有 对参考的参考 这与普通的旧参考有何不同 我从未在现
  • 从 mvc 控制器使用 Web api 控制器操作

    我有两个控制器 一个mvc控制器和一个api控制器 它们都在同一个项目中 HomeController Controller DataController ApiController 如果我想从 HomeController 中使用 Dat

随机推荐

  • 从 javascript 调用 Winform 托管的 WCF 服务

    我有一个带有 Ajax Web 端点的 Winform 托管 WCF 服务 我还有一个单独的 ASP NET 项目 页面上有 ScriptManager 组件 我的问题是 如果我使用 javascript 从 ASP NET 应用程序的客户
  • 在 LLVM IR 中插入 GetElementpointer 指令

    我想知道如何通过 LLVM Pass 在 LLVM IR 中插入 GetElementPointer 指令 假设我有一个数组 arr4 alloca 100000 x i32 align 4 并想要插入一个像 arrayidx getele
  • 一个元素上的多个 jQuery 事件具有不同的功能和目标选择器

    有没有办法结合这两种方法来处理 jQuery 中的事件附件 selector on mouseenter function mouseleave function mousedown function mouseup function 我更
  • 使用 Interlocked 测试并有条件地更新 long

    有没有一种巧妙的方法可以使用Interlocked班级 或者我应该使用lock 我的具体用例是我有多个线程来计算long值 并将其与共享 最大值 值进行比较 仅当本地值较大时才替换共享值 Try the Interlocked Compar
  • React-Final-Form 在子组件中带有 DropDown,怎么样?

    我正在尝试在子组件中使用带有 DropDown 的 React final form 无法让这个工作 我的所有文本字段都已经在子组件中 这就像一个魅力 父级中的字段如下所示
  • C++、cin、cout、threads 和sync_with_stdio 的输出损坏

    我正在尝试用 C 编写一个程序 以尽可能最快的方式处理大量数据包 来自标准的所有数据包都应尽快读取 发送到池中的一个线程进行处理 然后处理到将数据包写入标准输出的输出线程 当您在 C 中使用标准输入和输出时 建议在任何输入或输出之前调用st
  • 放弃 Git Stash Pop

    我做了一个 git stash pop 现在有很多冲突 我在之前提交了所有最近的代码git stash pop 那么有没有办法返回到最后一次提交并消除所有冲突并编码git stash pop注射 这个问题已经在 stackoverflow
  • 如何从会话中检索通用列表?

    我在会议中列出了一份清单 Session Add SessionList mylist 如何从会话中检索它 var list Session SessionList as List
  • Appengine 过滤不等式和排序失败

    我认为我在这里忽略了一些简单的事情 我无法想象这是不可能做到的 我想按日期时间属性进行过滤 然后按排名整数属性对结果进行排序 当我尝试这样做时 query filter submitted gt thisweek order ranking
  • 从 JSON 到 NSArray

    我正在使用此处找到的 JSON 框架 http stig github com json framework http stig github com json framework在我的 iPhone 应用程序中 我正在尝试将一些数据解析为
  • 这是 Ruby 中 Array.fill 方法的错误吗? [复制]

    这个问题在这里已经有答案了 应该是这种情况 即我误解了 还是一个错误 a Array new 3 Array new 3 a 1 fill g gt g g g g g g g g g 不应该导致 gt nil nil nil g g g
  • 批处理文件从txt文件中删除前18个字符

    我有一个 txt 文档 其中包含超过 32 000 行带注释的机器代码 它看起来像这样 Display menu window C0 000E E220 SEP 20 C0 0010 C210 REP 10 C0 0012 20640B J
  • HostnameVerifier 接口的不安全实现 - Android

    Play 商店应用被拒绝的原因 您的应用程序正在使用 HostnameVerifier 接口的不安全实现 您可以在此找到有关如何解决该问题的更多信息Google 帮助中心文章 https support google com faqs an
  • grep 查找中间带有通配符的文本

    我想 grep 类似的东西 gt sh lt 但这不起作用 我可以 grep 一切 sh lt 但无法让通配符发挥作用 这里有什么技巧呢 你需要 grep 类似的东西 gt sh lt The 部分匹配任何长度的任何字符 部分匹配一个点
  • gwt 自定义小部件包装方法

    我的自定义小部件如下所示 public class CustomWidget extends Composite public static CustomWidget wrap com google gwt dom client Eleme
  • 如何将 Lua 函数传递给 C 函数并多次执行 Lua 函数?

    我想要做的是创建一个函数 它将迭代一些对象并为每个函数调用一个函数 我使用的是 BlitzMax 而不是 C 但这不是重点 因为它具有 Lua 的 C 函数的完整包装 Lua有一个lua pushcfunction 命令 但是lua pus
  • Python3 + Curses:如何按“q”立即结束程序?

    当我运行以下示例代码并按 q 时 它会正常结束 但是如果我按任何其他字符 例如许多中断和许多其他字符 然后按 q 它不会退出 我该如何解决这个问题 import curses time def main sc sc nodelay 1 wh
  • 如何检查变量是否是数组?...或类似数组的东西

    我想用一个foreach用一个变量循环 但这个变量可以有很多不同的类型 NULL例如 所以之前foreach我测试一下 if is array var foreach var as 但我意识到它也可以是一个实现的类Iterator界面 也许
  • 如何加载(或映射)文件部分最大大小,但适合 Windows 上的 RAM?

    有大文件 我需要快速排序 我将按适合 RAM 的部分处理文件 以避免 程度使用页面文件 下一步 合并部分 如何使用最大内存 我的解决方案 使用WinApi文件内存映射 但我不知道如何获取文件最大大小的一部分 但适合RAM 如何确定大小 Yo
  • Service-Fabric 绑定到多个端点

    是否可以绑定服务结构应用程序来侦听多个端口 基本上 我试图拥有一个面向公众的服务 它侦听 http 80 和 https 443 并将任何 http 请求重定向到 https 我创建了一个新的 ASP net Core 服务 它单独工作正常