Inheritance: SPIisWebServiceProxy, IServiceProxyAdministration
Exemplo n.º 1
0
        public SPServiceApplicationProxy CreateProxy(string name, SPServiceApplication serviceApplication, SPServiceProvisioningContext provisioningContext)
        {
            if (serviceApplication.GetType() != typeof(NodeServiceApplication))
            {
                throw new NotSupportedException();
            }
            if (serviceApplication == null)
            {
                throw new ArgumentNullException("serviceApplication");
            }

            // Verify the service proxy exists.
            NodeServiceProxy serviceProxy = (NodeServiceProxy)this.Farm.GetObject(name, this.Farm.Id, typeof(NodeServiceProxy));

            if (serviceProxy == null)
            {
                throw new InvalidOperationException("NodeServiceProxy does not exist in the farm.");
            }

            // If the application proxy doesn't exist, create it.
            NodeServiceApplicationProxy applicationProxy = serviceProxy.ApplicationProxies.GetValue <NodeServiceApplicationProxy>(name);

            if (applicationProxy == null)
            {
                Uri serviceAppAddress = ((NodeServiceApplication)serviceApplication).Uri;
                applicationProxy = new NodeServiceApplicationProxy(name, serviceProxy, serviceAppAddress);
            }

            return(applicationProxy);
        }
        public override void FeatureActivated(SPFeatureReceiverProperties properties)
        {
            // Install the service.
            NodeService service = SPFarm.Local.Services.GetValue<NodeService>();
            if (service == null)
            {
                service = new NodeService(SPFarm.Local);
                service.Update();
            }

            // Install the service proxy.
            NodeServiceProxy serviceProxy = SPFarm.Local.ServiceProxies.GetValue<NodeServiceProxy>();
            if (serviceProxy == null)
            {
                serviceProxy = new NodeServiceProxy(SPFarm.Local);
                serviceProxy.Update(true);
            }

            // With service added to the farm, install instance.
            foreach (SPServer server in SPFarm.Local.Servers)
            {
                if (server.Role != SPServerRole.Invalid)
                {
                    NodeServiceInstance serviceInstance = new NodeServiceInstance(server, service);
                    serviceInstance.Update(true);
                }
            }
        }
Exemplo n.º 3
0
 public NodeServiceApplicationProxy(string name, NodeServiceProxy nodeServiceProxy, Uri serviceApplicationUri)
     : base(name, nodeServiceProxy, serviceApplicationUri)
 {
     _loadBalancer = new SPRoundRobinServiceLoadBalancer(serviceApplicationUri);
 }