Redigera

Dela via


PeerNameRegistration.Start Method

Definition

Registers the PeerName into the Cloud. If no EndPointCollection is specified, automatic address selection is used with the port value specified by the Port property.

public:
 void Start();
[System.Security.SecurityCritical]
public void Start ();
[<System.Security.SecurityCritical>]
member this.Start : unit -> unit
Public Sub Start ()
Attributes

Exceptions

The PeerName property is set to null.

This object had Dispose() called on it previously.

  • The PeerName specified has already been registered. The Update() method must be used to update a registration.

  • The remote peer does not own the Authority for the PeerName specified.

  • Either the PeerName or the Data is not specified; at least one needs to be provided.

  • The message or data elements are invalid. Or, UseAutoEndPointSelection is not set and no data blob or IPEndPoint is specified.

Examples

The following code example creates a PeerName and registers it along with the metadata specified.

// Creates a PeerName and registers it along with the metadata specified
// The parameters used to register the name are static types that are set
// from user input (command-line or user dialog).
// These parameters include the following:
//   static String peerName
//   static PeerNameType peerNameType
//   static int portNumber
//   static String comment
//   static Cloud cloudName

public static void CreateAndPublishPeerName()
{
    try{
        // Creates a the PeerName to register using the classifier and type provided
        PeerName peerName = new PeerName(peerNameClassifier, peerNameType);

        // Create a registration object which represents the registration
        // of the PeerName in a Cloud
        PeerNameRegistration peerNameRegistration = new PeerNameRegistration();
        peerNameRegistration.PeerName = peerName;
        peerNameRegistration.Port = portNumber;
        peerNameRegistration.Comment = comment;
        peerNameRegistration.Cloud = cloudName;
        // Since the peerNameRegistration.EndPointCollection is not specified,
        // all (IPv4&IPv6) addresses assigned to the local host will
        // automatically be associated with the peerNameRegistration instance.
        // This behavior can be control using peerNameRegistration.UseAutoEndPointSelection

        //Note: Additional information may be specified on the PeerNameRegistration
        // object, which is not shown in this example.

        // Starting the registration means the name is published for
        // other peers to resolve
        peerNameRegistration.Start();
        Console.WriteLine("Registration of Peer Name: {0} complete.", peerName.ToString(), cloudName);
        Console.WriteLine();

        Console.WriteLine("Press any key to stop the registration and close the program");
        Console.ReadKey();

        // Stopping the registration means the name is no longer published
        peerNameRegistration.Stop();
    } catch(Exception e){
        Console.WriteLine("Error creating and registering the PeerName: {0} \n", e.Message);
        Console.WriteLine(e.StackTrace);
    }
}

Remarks

The method registers the peer name specified in the PeerName property with all source addresses and the Port specified in the constructor. The default port is used by this method only when no endpoints are specified.

If the Cloud property is null, this method registers the peer name specified in the PeerName property using the Available field, which initializes default values for the Name, Scope, and ScopeId.

After a PeerNameRegistration object has been started, the Stop method is used to stop it.

To update a registration, the Update method must be used.

Applies to