using System; using System.ServiceModel; using System.ServiceModel.Description; /* código PHP para o cliente 1)); //var_dump($client->__getFunctions()); var_dump($client->__getTypes()); for($x=1;$x<=1000;$x++) { var_dump($client->__soapCall("Multiply",array(array("n1"=>$x,"n2"=>9)))); } ?> para liberar a porta para usuário 'normal': netsh http add urlacl url=http://+:8081/ user=todos */ namespace ws { class Program { static void Main(string[] args) { ServiceHost selfHost = new ServiceHost(typeof(CalculatorService), new Uri("http://localhost:8081/x")); try { selfHost.AddServiceEndpoint(typeof(CalculatorService), new BasicHttpBinding(), "CalculatorService"); selfHost.Description.Behaviors.Add(new ServiceMetadataBehavior() { HttpGetEnabled = true }); selfHost.Open(); Console.WriteLine("The service is ready. Press to terminate service."); Console.ReadLine(); selfHost.Close(); } catch (CommunicationException ce) { Console.WriteLine("An exception occurred: {0}", ce.Message); selfHost.Abort(); } } } [ServiceContract] public class CalculatorService { [OperationContract] public int Add(int n1, int n2) { Console.WriteLine(n1 + "+" + n2); return n1 + n2; } [OperationContract] public int Subtract(int n1, int n2) { Console.WriteLine(n1 + "-" + n2); return n1 - n2; } [OperationContract] public int Multiply(int n1, int n2) { Console.WriteLine(n1 + "*" + n2); return n1 * n2; } [OperationContract] public int Divide(int n1, int n2) { Console.WriteLine(n1 + "/" + n2); return n1 / n2; } } }