Definir configurações do FabricTransport para atores confiáveis
Aqui estão as configurações que você pode definir:
Você pode modificar a configuração padrão do FabricTransport das seguintes maneiras.
Atributo Assembly
O atributo FabricTransportActorRemotingProvider precisa ser aplicado nos assemblies de serviço do cliente do ator e do ator.
O exemplo a seguir mostra como alterar o valor padrão das configurações de FabricTransport OperationTimeout:
using Microsoft.ServiceFabric.Actors.Remoting.FabricTransport;
[assembly:FabricTransportActorRemotingProvider(OperationTimeoutInSeconds = 600)]
O segundo exemplo altera os valores padrão de FabricTransport MaxMessageSize e OperationTimeoutInSeconds.
using Microsoft.ServiceFabric.Actors.Remoting.FabricTransport;
[assembly:FabricTransportActorRemotingProvider(OperationTimeoutInSeconds = 600,MaxMessageSize = 134217728)]
Pacote de configuração
Você pode usar um pacote de configuração para modificar a configuração padrão.
Importante
Nos nós Linux, os certificados devem ser formatados em PEM. Para saber mais sobre como localizar e configurar certificados para Linux, consulte Configurar certificados no Linux.
Definir configurações de FabricTransport para o serviço de ator
Adicione uma seção TransportSettings no arquivo settings.xml.
Por padrão, o código do ator procura SectionName como "<ActorName>TransportSettings". Se isso não for encontrado, ele verificará SectionName como "TransportSettings".
<Section Name="MyActorServiceTransportSettings">
<Parameter Name="MaxMessageSize" Value="10000000" />
<Parameter Name="OperationTimeoutInSeconds" Value="300" />
<Parameter Name="SecurityCredentialsType" Value="X509" />
<Parameter Name="CertificateFindType" Value="FindByThumbprint" />
<Parameter Name="CertificateFindValue" Value="4FEF3950642138446CC364A396E1E881DB76B48C" />
<Parameter Name="CertificateRemoteThumbprints" Value="b3449b018d0f6839a2c5d62b5b6c6ac822b6f662" />
<Parameter Name="CertificateStoreLocation" Value="LocalMachine" />
<Parameter Name="CertificateStoreName" Value="My" />
<Parameter Name="CertificateProtectionLevel" Value="EncryptAndSign" />
<Parameter Name="CertificateRemoteCommonNames" Value="ServiceFabric-Test-Cert" />
</Section>
Definir configurações de FabricTransport para o assembly do cliente do ator
Se o cliente não estiver sendo executado como parte de um serviço, você poderá criar um arquivo "<Client Exe Name>.settings.xml" no mesmo local que o arquivo de .exe do cliente. Em seguida, adicione uma seção TransportSettings nesse arquivo. SectionName deve ser "TransportSettings".
<?xml version="1.0" encoding="utf-8"?>
<Settings xmlns:xsd="https://www.w3.org/2001/XMLSchema" xmlns:xsi="https://www.w3.org/2001/XMLSchema-instance" xmlns="http://schemas.microsoft.com/2011/01/fabric">
<Section Name="TransportSettings">
<Parameter Name="SecurityCredentialsType" Value="X509" />
<Parameter Name="OperationTimeoutInSeconds" Value="300" />
<Parameter Name="CertificateFindType" Value="FindByThumbprint" />
<Parameter Name="CertificateFindValue" Value="b3449b018d0f6839a2c5d62b5b6c6ac822b6f662" />
<Parameter Name="CertificateRemoteThumbprints" Value="4FEF3950642138446CC364A396E1E881DB76B48C" />
<Parameter Name="OperationTimeoutInSeconds" Value="300" />
<Parameter Name="CertificateStoreLocation" Value="LocalMachine" />
<Parameter Name="CertificateStoreName" Value="My" />
<Parameter Name="CertificateProtectionLevel" Value="EncryptAndSign" />
<Parameter Name="CertificateRemoteCommonNames" Value="WinFabric-Test-SAN1-Alice" />
</Section>
</Settings>
Definindo as configurações do FabricTransport para Secure Ator Service/Client com certificado secundário. As informações do certificado secundário podem ser adicionadas adicionando o parâmetro CertificateFindValuebySecondary. Abaixo está o exemplo para o Listener TransportSettings.
<Section Name="TransportSettings"> <Parameter Name="SecurityCredentialsType" Value="X509" /> <Parameter Name="CertificateFindType" Value="FindByThumbprint" /> <Parameter Name="CertificateFindValue" Value="b3449b018d0f6839a2c5d62b5b6c6ac822b6f662" /> <Parameter Name="CertificateFindValuebySecondary" Value="h9449b018d0f6839a2c5d62b5b6c6ac822b6f690" /> <Parameter Name="CertificateRemoteThumbprints" Value="4FEF3950642138446CC364A396E1E881DB76B48C,a9449b018d0f6839a2c5d62b5b6c6ac822b6f667" /> <Parameter Name="CertificateStoreLocation" Value="LocalMachine" /> <Parameter Name="CertificateStoreName" Value="My" /> <Parameter Name="CertificateProtectionLevel" Value="EncryptAndSign" /> </Section>
Abaixo está o exemplo para o Client TransportSettings.
<Section Name="TransportSettings"> <Parameter Name="SecurityCredentialsType" Value="X509" /> <Parameter Name="CertificateFindType" Value="FindByThumbprint" /> <Parameter Name="CertificateFindValue" Value="4FEF3950642138446CC364A396E1E881DB76B48C" /> <Parameter Name="CertificateFindValuebySecondary" Value="a9449b018d0f6839a2c5d62b5b6c6ac822b6f667" /> <Parameter Name="CertificateRemoteThumbprints" Value="b3449b018d0f6839a2c5d62b5b6c6ac822b6f662,h9449b018d0f6839a2c5d62b5b6c6ac822b6f690" /> <Parameter Name="CertificateStoreLocation" Value="LocalMachine" /> <Parameter Name="CertificateStoreName" Value="My" /> <Parameter Name="CertificateProtectionLevel" Value="EncryptAndSign" /> </Section>
Definindo as configurações do FabricTransport para proteger o serviço/cliente do ator usando o nome do assunto. O usuário precisa fornecer findType como FindBySubjectName, adicionar valores CertificateIssuerThumbprints e CertificateRemoteCommonNames. Abaixo está o exemplo para o Listener TransportSettings.
<Section Name="TransportSettings"> <Parameter Name="SecurityCredentialsType" Value="X509" /> <Parameter Name="CertificateFindType" Value="FindBySubjectName" /> <Parameter Name="CertificateFindValue" Value="CN = WinFabric-Test-SAN1-Alice" /> <Parameter Name="CertificateIssuerThumbprints" Value="b3449b018d0f6839a2c5d62b5b6c6ac822b6f662" /> <Parameter Name="CertificateRemoteCommonNames" Value="WinFabric-Test-SAN1-Bob" /> <Parameter Name="CertificateStoreLocation" Value="LocalMachine" /> <Parameter Name="CertificateStoreName" Value="My" /> <Parameter Name="CertificateProtectionLevel" Value="EncryptAndSign" /> </Section>
Abaixo está o exemplo para o Client TransportSettings.
<Section Name="TransportSettings"> <Parameter Name="SecurityCredentialsType" Value="X509" /> <Parameter Name="CertificateFindType" Value="FindBySubjectName" /> <Parameter Name="CertificateFindValue" Value="CN = WinFabric-Test-SAN1-Bob" /> <Parameter Name="CertificateStoreLocation" Value="LocalMachine" /> <Parameter Name="CertificateStoreName" Value="My" /> <Parameter Name="CertificateRemoteCommonNames" Value="WinFabric-Test-SAN1-Alice" /> <Parameter Name="CertificateProtectionLevel" Value="EncryptAndSign" /> </Section>