如何在 Service Fabric 中使用参数来指定服务的端口号How to specify the port number of a service using parameters in Service Fabric

本文演示如何使用 Visual Studio 在 Service Fabric 中通过参数来指定服务的端口号。This article shows you how to specify the port number of a service using parameters in Service Fabric using Visual Studio.

使用参数来指定服务的端口号的过程Procedure for specifying the port number of a service using parameters

在此示例中,使用参数来设置 ASP.NET Core Web API 的端口号。In this example, you set the port number for your asp.net core web API using a parameter.

  1. 打开 Visual Studio 并创建新的 Service Fabric 应用程序。Open Visual Studio and create a new Service Fabric application.

  2. 选择无状态 ASP.NET Core 模板。Choose the Stateless ASP.NET Core template.

  3. 选择 Web API。Choose Web API.

  4. 打开 ServiceManifest.xml 文件。Open the ServiceManifest.xml file.

  5. 记下为你的服务指定的终结点的名称。Note the name of the endpoint specified for your service. 默认为 ServiceEndpointDefault is ServiceEndpoint.

  6. 打开 ApplicationManifest.xml 文件Open the ApplicationManifest.xml file

  7. ServiceManifestImport 元素中,添加新的 RessourceOverrides 元素,其中包括对 ServiceManifest.xml 文件中终结点的引用。In the ServiceManifestImport element, add a new RessourceOverrides element with a reference to the endpoint in your ServiceManifest.xml file.

      <ServiceManifestImport>
        <ServiceManifestRef ServiceManifestName="Web1Pkg" ServiceManifestVersion="1.0.0" />
        <ResourceOverrides>
          <Endpoints>
            <Endpoint Name="ServiceEndpoint"/>
          </Endpoints>
        </ResourceOverrides>
        <ConfigOverrides />
      </ServiceManifestImport>
    
  8. Endpoint 元素中,现在可使用参数替换任何属性。In the Endpoint element, you can now override any attribute using a parameter. 本示例中,使用方括号指定 Port 并将其设置为参数名称 - 例如,[MyWebAPI_PortNumber]In this example, you specify Port and set it to a parameter name using square brackets - for example, [MyWebAPI_PortNumber]

      <ServiceManifestImport>
        <ServiceManifestRef ServiceManifestName="Web1Pkg" ServiceManifestVersion="1.0.0" />
        <ResourceOverrides>
          <Endpoints>
            <Endpoint Name="ServiceEndpoint" Port="[MyWebAPI_PortNumber]"/>
          </Endpoints>
        </ResourceOverrides>
        <ConfigOverrides />
      </ServiceManifestImport>
    
  9. 仍在 ApplicationManifest.xml 文件中,然后在 Parameters 元素中指定参数Still in the ApplicationManifest.xml file, you then specify the parameter in the Parameters element

      <Parameters>
        <Parameter Name="MyWebAPI_PortNumber" />
      </Parameters>
    
  10. 并定义 DefaultValueAnd define a DefaultValue

      <Parameters>
        <Parameter Name="MyWebAPI_PortNumber" DefaultValue="8080" />
      </Parameters>
    
  11. 打开 ApplicationParameters 文件夹和 Cloud.xml 文件Open the ApplicationParameters folder and the Cloud.xml file

  12. 若要指定在发布到远程群集时要使用的其他端口,请将带有端口号的参数添加到此文件。To specify a different port to be used when publishing to a remote cluster, add the parameter with the port number to this file.

      <Parameters>
        <Parameter Name="MyWebAPI_PortNumber" Value="80" />
      </Parameters>
    

使用 Cloud.xml 发布配置文件从 Visual Studio 发布应用程序时,服务将配置为使用端口 80。When publishing your application from Visual Studio using the Cloud.xml publish profile, your service is configured to use port 80. 如果在未指定 MyWebAPI_PortNumber 参数的情况下部署应用程序,则服务使用端口 8080。If you deploy the application without specifying the MyWebAPI_PortNumber parameter, the service uses port 8080.

后续步骤Next steps

若要详细了解本文中讨论的一些核心概念,请参阅文章管理多个环境的应用程序To learn more about some of the core concepts that are discussed in this article, see the Manage applications for multiple environments articles.

有关 Visual Studio 中其他可用应用管理功能的信息,请参阅在 Visual Studio 中管理 Service Fabric 应用程序For information about other app management capabilities that are available in Visual Studio, see Manage your Service Fabric applications in Visual Studio.