如何在本地服务结构集群中部署和访问来宾可执行文件(ASP.NET OWIN 自托管 webapi 应用程序)

Posted

技术标签:

【中文标题】如何在本地服务结构集群中部署和访问来宾可执行文件(ASP.NET OWIN 自托管 webapi 应用程序)【英文标题】:How to deploy and access a guest executable(ASP.NET OWIN self hosted webapi application) in local service fabric cluster 【发布时间】:2018-02-27 14:21:01 【问题描述】:

我创建了一个 ASP.NET Owin 自托管 webapi 应用程序。下面是自己的主机代码sn-p

using Microsoft.Owin.Hosting;

namespace OwinSelfHostSample



    class Program

    

        public static void Main(string[] args)

        

            string localhost = "http://localhost:80";

            // Start OWIN host 
            using (WebApp.Start<LocalStartup>(localhost))
            
                Console.ReadLine();
            
        
    

我可以运行 Owin exe 并访问我的服务端点,例如 http://localhost:80/keepalive 等

当我尝试按照here 处的说明将其作为来宾可执行文件部署到本地服务结构集群时,发布成功,但我无法访问端点。我总是得到 503 服务不可用的 http 响应。事件查看器中也没有相关错误。

【问题讨论】:

【参考方案1】:

我的猜测是您的端点在服务结构中没有正确配置。

通过调试本地集群确保你的服务真的启动了 检查您的端点配置 - 您是否在应用程序清单中发布了端口? https://docs.microsoft.com/en-us/azure/service-fabric/service-fabric-service-manifest-resources 查看此文档。它只提到来宾可执行文件中的 API,但仍然可以帮助您 https://docs.microsoft.com/en-us/azure/service-fabric/service-fabric-reliable-services-communication-aspnetcore

【讨论】:

我将代码从 "string localhost = "localhost:80";" 更改为 "string localhost = "http://+:80";" 现在它工作正常。不知道为什么行为。 这可能是由于 Service Fabric 针对多个节点的设计方式,我在答案中链接的文档中提到了这个强大的通配符 谢谢亚历克斯。这些链接有助于对问题进行分类。 @PradeepAgarwal 很高兴为您提供帮助,如果此答案解决了您的问题,请单击答案旁边的复选标记将其标记为已接受。见:How does accepting an answer work?了解更多信息

以上是关于如何在本地服务结构集群中部署和访问来宾可执行文件(ASP.NET OWIN 自托管 webapi 应用程序)的主要内容,如果未能解决你的问题,请参考以下文章

如何在 Azure 服务结构中迁移 Windows 服务

管理来宾可执行文件依赖项 - 本地 Service Fabric

如何在 Service Fabric 中安装批处理文件

服务结构托管 Asp.net WebApi 容器应用程序:403 - 禁止:访问被拒绝。在本地集群上

在 Service Fabric 的来宾可执行文件中使用动态分配的端口

无法发布到另一台机器上的服务结构本地集群