コード例 #1
0
        private static void Start(string[] args)
        {
            WebServicesImplementation PureCloudServices = new WebServicesImplementation();
            WebServiceHost _serviceHost = new WebServiceHost(PureCloudServices, new Uri(PureCloudServices.URL));

            _serviceHost.Open();
        }
コード例 #2
0
ファイル: Main.cs プロジェクト: andy012345/WoWServer
        public static void Run()
        {
            //return;
            if (System.IO.File.Exists("Config-Web.xml"))
            {
                if (!System.IO.File.Exists("Config-Client.xml"))
                    throw new InvalidOperationException("WebService cannot start without client support");

                WebServiceHost host;
                ServiceEndpoint endpoint;

                //start web server :)
                host = new WebServiceHost(typeof (Service), new Uri("http://localhost.com:9000/"));
                    //todo: move to config
                endpoint = host.AddServiceEndpoint(typeof (IService), new WebHttpBinding(), "service");
                host.Open();
                hosts.Add(host);
                endpoints.Add(endpoint);

                host = new WebServiceHost(typeof (AccountService), new Uri("http://localhost.com:9000/"));
                    //todo: move to config
                endpoint = host.AddServiceEndpoint(typeof (IAccountService), new WebHttpBinding(), "account");
                host.Open();
                hosts.Add(host);
                endpoints.Add(endpoint);

                Running = true;
            }
        }
コード例 #3
0
 public QueryServiceHost(Uri address, object service)
 {
     host = new WebServiceHost(service);
     host.AddServiceEndpoint(typeof(IQueryService), new WebHttpBinding(), address);
     WebHttpBehavior behavior = new WebHttpBehavior();
     host.Description.Endpoints[0].Behaviors.Add(behavior);
 }
コード例 #4
0
ファイル: Program.cs プロジェクト: ssickles/archive
        static void Main(string[] args)
        {
            ItemCounter counter = new ItemCounter();

            using (WebServiceHost host = new WebServiceHost(new StreamingFeedService(counter), new Uri("http://localhost:8000/Service")))
            {
                WebHttpBinding binding = new WebHttpBinding();

                binding.TransferMode = TransferMode.StreamedResponse;
                host.AddServiceEndpoint(typeof(IStreamingFeedService), binding, "Feeds");

                host.Open();

                XmlReader reader = XmlReader.Create("http://localhost:8000/Service/Feeds/StreamedFeed");
                StreamedAtom10FeedFormatter formatter = new StreamedAtom10FeedFormatter(counter);

                Console.WriteLine("Reading stream from server");

                formatter.ReadFrom(reader);
                SyndicationFeed feed = formatter.Feed;

                foreach (SyndicationItem item in feed.Items)
                {
                    //This sample is implemented such that the server will generate an infinite stream of items;
                    //it only stops after the client reads 10 items
                    counter.Increment();
                }

                Console.WriteLine("CLIENT: read total of {0} items", counter.GetCount());
                Console.WriteLine("Press any key to terminate");
                Console.ReadLine();
            }
        }
コード例 #5
0
        public TestDataService(string baseUrl, Type serviceType)
        {
            for (var i = 0; i < 100; i++)
            {
                var hostId = Interlocked.Increment(ref _lastHostId);
                this._serviceUri = new Uri(baseUrl + hostId);
                this._host = new DataServiceHost(serviceType, new Uri[] { this._serviceUri });


                var binding = new WebHttpBinding { MaxReceivedMessageSize = Int32.MaxValue };
                _host.AddServiceEndpoint(typeof(System.Data.Services.IRequestHandler), binding, _serviceUri);
                
                //var endpoing = new ServiceEndPoint
                //this._host.Description.Endpoints[0].Binding
                //this._host.AddServiceEndpoint(serviceType, binding, this._serviceUri);
                try
                {
                    this._host.Open();
                    break;
                }
                catch (Exception)
                {
                    this._host.Abort();
                    this._host = null;
                }
            }

            if (this._host == null)
            {
                throw new InvalidOperationException("Could not open a service even after 100 tries.");
            }
        }
コード例 #6
0
        public void Dispose()
        {
            if (this._host == null) return;

            this._host.Close();
            this._host = null;
        }
コード例 #7
0
        public void Start(string[] args)
        {
            HomeModule.Container = AppContext.Container;
            PackagesModule.Container = AppContext.Container;
            InstallationsModule.Container = AppContext.Container;
            LogModule.Container = AppContext.Container;
            ActionsModule.Container = AppContext.Container;
            ConfigurationModule.Container = AppContext.Container;

            Nancy.Json.JsonSettings.MaxJsonLength = 1024*1024*5; // 5mb max

            try
            {
                WebUiAddress = new Uri("http://localhost:9999/");
                _host = new WebServiceHost(new NancyWcfGenericService(), WebUiAddress);
                _host.AddServiceEndpoint(typeof (NancyWcfGenericService), new WebHttpBinding(), "");
                _host.Open();
            }
            catch (Exception ex)
            {
                _logger.Fatal(ex, "could not start listening");
            }

            _logger.Info("Hosting Web interface on: " + WebUiAddress);
        }
コード例 #8
0
ファイル: Program.cs プロジェクト: m-karimi/Code-Samples
 static void Main(string[] args)
 {
     WebServiceHost host=new WebServiceHost(typeof(OperatingSystemService),new Uri("http://localhost:8013/RESTWebservice/"));
     host.Open();
     Console.ReadKey();
     host.Close();
 }
コード例 #9
0
ファイル: Program.cs プロジェクト: cleancodenz/MVC4DEV
        // WebHttpBinding, REST based
        /**
         * If you do not add an endpoint, WebServiceHost automatically creates a default endpoint. WebServiceHost also adds WebHttpBehavior and disables the HTTP Help page and the Web Services Description Language (WSDL) GET functionality so the metadata endpoint does not interfere with the default HTTP endpoint.
         * Adding a non-SOAP endpoint with a URL of "" causes unexpected behavior when an attempt is made to call an operation on the endpoint. The reason for this is the listen URI of the endpoint is the same as the URI for the help page (the page that is displayed when you browse to the base address of a WCF service).
         *
         *
         * */
        private static void StartWebHTTPService()
        {
            string strAdr = "http://localhost" + "/MathService";
            WebServiceHost webServiceHost;
            try
            {
                Uri adrbase = new Uri(strAdr);

                webServiceHost = new WebServiceHost(typeof(MathService), adrbase);

                //To disable help page to avoid interference with normal http get

                ServiceDebugBehavior sdb = webServiceHost.Description.Behaviors.Find<ServiceDebugBehavior>();
                sdb.HttpHelpPageEnabled = false;

                WebHttpBinding webHttpBinding = new WebHttpBinding();
                webServiceHost.AddServiceEndpoint(typeof(IMathService), webHttpBinding, "");
                webServiceHost.Open();
                Console.WriteLine("\n\nService on WebHttpBinding is Running as >> " + strAdr);

            }
            catch (Exception eX)
            {
                webServiceHost = null;
                Console.WriteLine("Service can not be started as >> [" +
                  strAdr + "] \n\nError Message [" + eX.Message + "]");
            }
        }
コード例 #10
0
        /// <summary>
        /// Initializes a new instance of the <see cref="WindowsTimeService"/> class.
        /// </summary>
        /// <param name="timeServiceHost">The time service host.</param>
        /// <param name="timeWebServiceHost">The time web service host.</param>
        public WindowsTimeService(NinjectServiceHost<TimeService> timeServiceHost, NinjectWebServiceHost<TimeWebService> timeWebServiceHost)
        {
            this.InitializeComponent();

            this.timeServiceHost = timeServiceHost;
            this.timeWebServiceHost = timeWebServiceHost;
        }
コード例 #11
0
ファイル: Form.cs プロジェクト: layonez/Track-My-Work
        public Form()
        {
            try
            {
                InitializeComponent();

                DBProvider.CreateDBIfNotExist();
                dataGridView.DataSource = Source;

                SystemEvents.SessionSwitch += Tracker.SessionSwitch;
                SystemEvents.SessionSwitch += LoadGridSource;

                Tracker.SessionSwitch(null, new SessionSwitchEventArgs(SessionSwitchReason.SessionLogon));
                LoadGridSource(null, null);

                SetViewSettings();
                //init host for test client
                var host = new WebServiceHost(typeof(Service), new Uri("http://localhost:8001/"));
                var ep = host.AddServiceEndpoint(typeof(IService), new WebHttpBinding(), "");
                host.Open();
            }
            catch (Exception ex)
            {
                Logger.Log(ex);
            }
        }
コード例 #12
0
 protected static void StartService()
 {
     BindRequestToProcessors();
     var address = new Uri(_settings.JsonServiceAddress);
     _jsonService = new WebServiceHost(typeof(JsonServicePerCall), address);
     _jsonService.Open();
 }
コード例 #13
0
        public async Task Run(string hostName, string listenToken)
        {
            string httpAddress = new UriBuilder("http", hostName, -1, "svc").ToString();
            using (var host = new WebServiceHost(GetType()))
            {
                host.AddServiceEndpoint(
                    GetType(),
                    new WebHttpRelayBinding(
                        EndToEndWebHttpSecurityMode.None,
                        RelayClientAuthenticationType.None) {IsDynamic = true},
                    httpAddress)
                    .EndpointBehaviors.Add(
                        new TransportClientEndpointBehavior(
                            TokenProvider.CreateSharedAccessSignatureTokenProvider(listenToken)));

                host.Open();

                Console.WriteLine("Starting a browser to see the image: ");
                Console.WriteLine(httpAddress + "/Image");
                Console.WriteLine();
                // launching the browser
                System.Diagnostics.Process.Start(httpAddress + "/Image");
                Console.WriteLine("Press [Enter] to exit");
                Console.ReadLine();

                host.Close();
            }
        }
コード例 #14
0
ファイル: GateWcfService.cs プロジェクト: bvanderveen/gate
 public static WebServiceHost Create(Uri baseUri, AppDelegate app)
 {
     var host = new WebServiceHost(new GateWcfService(app), baseUri);
     host.AddServiceEndpoint(typeof (GateWcfService), new WebHttpBinding(), "");
     host.Open();
     return host;
 }
コード例 #15
0
 protected override void OnStart(string[] args)
 {
     var host = new WebServiceHost(new NancyWcfGenericService(),
                       new Uri("http://localhost:1234/base/"));
      host.AddServiceEndpoint(typeof(NancyWcfGenericService), new WebHttpBinding(), "");
      host.Open();
 }
コード例 #16
0
ファイル: ServiceContainer.cs プロジェクト: Xtremrules/dot42
        public static void Stop()
        {
            try
            {
                _webServiceHost1.Close();
            }
            catch
            {
                //noting to do
            }
            finally
            {
                _webServiceHost1 = null;
            }

            try
            {
                _webServiceHost2.Close();
            }
            catch
            {
                //noting to do
            }
            finally
            {
                _webServiceHost2 = null;
            }
        }
コード例 #17
0
        static void Main(string[] args)
        {
            // Before running replace the servicebus namespace (next line) and REPLACESERVICEBUSKEY (app.config)
            string serviceNamespace = "jtarquino";
            string serviceBusKey = "REPLACEKEYHERE";
            Console.Write("Your Service Namespace: ");

            // Tranport level security is required for all *RelayBindings; hence, using https is required
            Uri address = ServiceBusEnvironment.CreateServiceUri("https", serviceNamespace, "Timer");

            WebServiceHost host = new WebServiceHost(typeof(ProblemSolver), address);

            WebHttpRelayBinding binding = new WebHttpRelayBinding(EndToEndWebHttpSecurityMode.None, RelayClientAuthenticationType.None);

            host.AddServiceEndpoint(
               typeof(IProblemSolver), binding, address)
                .Behaviors.Add(new TransportClientEndpointBehavior
                {
                    TokenProvider = TokenProvider.CreateSharedAccessSignatureTokenProvider("RootManageSharedAccessKey", serviceBusKey)
                });

            host.Open();
            Console.WriteLine(address + "CurrentTime");
            Console.WriteLine("Press ENTER to close");
            Console.ReadLine();

            host.Close();
        }
コード例 #18
0
        static void Main()
        {
            //Create Users
            UserDB.AddUser(new User("u1", "p1","1"));
            UserDB.AddUser(new User("u2", "p2","2"));
            UserDB.AddUser(new User("u3", "p3","3"));

            //Start BackOfficeService
            var backOfficeCallBackServiceHost = new WebServiceHost(typeof(BackOfficeCallBackService));
            backOfficeCallBackServiceHost.Open();

            //Start REST WebSiteService
            var webSiteServer = new WebServiceHost(typeof(WebSiteService));
            webSiteServer.Open();

            //Create timer to check messageQueue Outbox
            var myTimer = new Timer();
            myTimer.Elapsed += LookForDownloadReady;
            myTimer.Interval = 5;
            myTimer.Enabled = true;

            Console.ReadLine();

            //Meter aqui os closes dos servicos nos fim
        }
コード例 #19
0
		static void Main (string[] args) {
			LegoRestService DemoServices = new LegoRestService ();
			WebServiceHost _serviceHost = new WebServiceHost (DemoServices, new Uri ("http://localhost:8000/DEMOService"));
			_serviceHost.Open ();
			Console.ReadKey ();
			_serviceHost.Close ();
		}
コード例 #20
0
ファイル: Program.cs プロジェクト: offspin/building_blocks
        static void Main(string[] args)
        {
            WebServiceHost webServiceHost = new WebServiceHost(typeof(PartyService.Service));

            WebHttpBinding serviceBinding = new WebHttpBinding(WebHttpSecurityMode.TransportCredentialOnly);
            serviceBinding.Security.Transport.ClientCredentialType = HttpClientCredentialType.Basic;
            ServiceEndpoint ep = webServiceHost.AddServiceEndpoint(
                typeof(PartyService.IService),
                serviceBinding,
                "http://localhost:8000/service");
            ep.Behaviors.Add(new PartyService.ProcessorBehaviour());

            WebHttpBinding staticBinding = new WebHttpBinding(WebHttpSecurityMode.None);
            ServiceEndpoint sep = webServiceHost.AddServiceEndpoint(
                typeof(PartyService.IStaticItemService),
                new WebHttpBinding(),
                "http://localhost:8000");

            webServiceHost.Credentials.UserNameAuthentication.UserNamePasswordValidationMode = UserNamePasswordValidationMode.Custom;
            webServiceHost.Credentials.UserNameAuthentication.CustomUserNamePasswordValidator = new PartyService.Validator();
            webServiceHost.Description.Behaviors.Find<ServiceDebugBehavior>().IncludeExceptionDetailInFaults = true;

            webServiceHost.Open();
            Console.WriteLine("Service is running - press enter to quit");
            Console.ReadLine();
            webServiceHost.Close();
            Console.WriteLine("Service stopped");
        }
コード例 #21
0
ファイル: WebService.cs プロジェクト: Masterwow3/PAWebService
 public void StartWebService()
 {
     //BasicConfigurator.Configure( new PatternLayout("%d [%t] %-5p %c %m%n"), @".\test.txt");
     RestDemoServices DemoServices = new RestDemoServices();
     WebServiceHost _serviceHost = new WebServiceHost(DemoServices, new Uri(URL));
     _serviceHost.Open();
 }
コード例 #22
0
ファイル: UnitTests.cs プロジェクト: Xtremrules/dot42
        public void GetTodosFiltered()
        {
            using (var server = new WebServiceHost(new TodoService(), new Uri(_hostAddress)))
            using (var client = new WebChannelFactory<ITodoApi>(new WebHttpBinding(), new Uri(_hostAddress)))
            {
                server.Open();
                client.Open();
                var channel = client.CreateChannel();

                using (new OperationContextScope((IContextChannel)channel))
                {
                    var todos = channel.GetTodosFiltered(true);
                    ValidateHttpStatusResponse(HttpStatusCode.OK);

                    Assert.AreEqual(1, todos.Todo.Length);
                }

                using (new OperationContextScope((IContextChannel)channel))
                {
                    var todos = channel.GetTodosFiltered(false);
                    ValidateHttpStatusResponse(HttpStatusCode.OK);

                    Assert.AreEqual(2, todos.Todo.Length);
                }
            }
        }
コード例 #23
0
        public async Task Run(string httpAddress, string listenToken)
        {
            using (var host = new WebServiceHost(this.GetType()))
            {
                var webHttpRelayBinding = new WebHttpRelayBinding(EndToEndWebHttpSecurityMode.Transport,
                                                                  RelayClientAuthenticationType.RelayAccessToken)
                                                                 {IsDynamic = false};
                host.AddServiceEndpoint(this.GetType(),
                    webHttpRelayBinding,
                    httpAddress)
                    .EndpointBehaviors.Add(
                        new TransportClientEndpointBehavior(
                            TokenProvider.CreateSharedAccessSignatureTokenProvider(listenToken)));

                host.Open();

                Console.WriteLine("Copy the following address into a browser to see the image: ");
                Console.WriteLine(httpAddress + "/Image");
                Console.WriteLine();
                Console.WriteLine("Press [Enter] to exit");
                Console.ReadLine();

                host.Close();
            }
        }
コード例 #24
0
        protected int _init()
        {
            try
            {
                this._baseAddress = new Uri(this._configuration.Address);
                this._baseHost = new WebServiceHost(this._serverPrimaryType, this._baseAddress);                

                this._metadataBehaviour = new ServiceMetadataBehavior();
                this._metadataBehaviour.HttpGetEnabled = true;
                this._metadataBehaviour.HttpGetUrl = this._baseAddress;
                this._baseHost.Description.Behaviors.Add(this._metadataBehaviour);                

                this._basicBinding = new BasicHttpBinding();
                this._basicBinding.MaxBufferPoolSize = Int32.MaxValue;
                this._basicBinding.MaxReceivedMessageSize = Int32.MaxValue;
                this._basicBinding.MaxBufferSize = Int32.MaxValue;
                this._basicBinding.TransferMode = TransferMode.Streamed;
                this._basicBinding.ReaderQuotas.MaxArrayLength = int.MaxValue;
                this._basicBinding.ReaderQuotas.MaxStringContentLength = int.MaxValue;
                this._basicBinding.ReaderQuotas.MaxBytesPerRead = int.MaxValue;
                this._basicBinding.ReaderQuotas.MaxDepth = 32;
                this._basicBinding.ReaderQuotas.MaxNameTableCharCount = int.MaxValue;

                if (this._allowWebRequests)
                {
                    this._webBehaviour = new WebHttpBehavior();

                    this._webBinding = new WebHttpBinding();
                    this._webBinding.MaxBufferPoolSize = Int32.MaxValue;
                    this._webBinding.MaxReceivedMessageSize = Int32.MaxValue;
                    this._webBinding.MaxBufferSize = Int32.MaxValue;
                    this._webBinding.TransferMode = TransferMode.Streamed;
                    this._webBinding.ReaderQuotas.MaxArrayLength = int.MaxValue;
                    this._webBinding.ReaderQuotas.MaxStringContentLength = int.MaxValue;
                    this._webBinding.ReaderQuotas.MaxBytesPerRead = int.MaxValue;
                    this._webBinding.ReaderQuotas.MaxDepth = 32;
                    this._webBinding.ReaderQuotas.MaxNameTableCharCount = int.MaxValue;
                }
            }
            catch (Exception ex)
            { 
                return -2;
            }

            try
            {
                this._baseHost.AddServiceEndpoint(this._serverInterfaceType, this._basicBinding, this._configuration.Address);
                if (this._allowWebRequests)
                {                                        
                    var Endpoint = this._baseHost.AddServiceEndpoint(_serverInterfaceType, this._webBinding, "Web");
                    Endpoint.Behaviors.Add(this._webBehaviour);
                }
            }
            catch (Exception ex)
            { 
                return -2;
            }

            return -1;
        }
コード例 #25
0
        public MainWindow()
        {
            InitializeComponent();

            hostUri = "http://localhost:8080/";
            host = new WebServiceHost(typeof(Service), new Uri(hostUri));
        }
コード例 #26
0
        protected override void OnStart(string[] args)
        {
            var sn = "Facturador Fiscal Winks Hotel";

            try
            {
                Uri baseAddress = new Uri(ConfigurationManager.AppSettings["BaseAddress"]);

                var webHost = new WebServiceHost(typeof(ServiceSelector), baseAddress);
                var endpoint = webHost.AddServiceEndpoint(typeof(IServiceSelector), new WebHttpBinding(WebHttpSecurityMode.None), baseAddress);
                //add support for cors (both for the endpoint to detect and create reply)
                endpoint.Behaviors.Add(new CorsBehaviorAttribute());

                foreach (var operation in endpoint.Contract.Operations)
                {
                    //add support for cors (and for operation to be able to not
                    //invoke the operation if we have a preflight cors request)
                    operation.Behaviors.Add(new CorsBehaviorAttribute());
                }

                webHost.Open();
            }
            catch (Exception ex)
            {
                if (!EventLog.SourceExists(sn))
                    EventLog.CreateEventSource(sn, "Application");

                EventLog.WriteEntry(sn, ex.Message, EventLogEntryType.Error);
            }
        }
コード例 #27
0
ファイル: Program.cs プロジェクト: jaensen/graph-crawler
        static void StartControlService(ManualResetEvent quitEvent)
        {
            try {

                string uriStr = string.Format ("http://localhost:{0}/{1}"
                                              , Properties.Settings.Default.ControlServicePort
                                              , Properties.Settings.Default.ControlServicePath);

                System.Diagnostics.Debug.WriteLine (string.Format ("Starting control service ({0}) ..."), uriStr);

                ControlService crawlerControlService = new ControlService ();
                crawlerControlService.QuitEvent = quitEvent;

                var serviceHost = new WebServiceHost (crawlerControlService, new Uri (uriStr));

                serviceHost.Open ();

                System.Diagnostics.Debug.WriteLine (string.Format ("Control service running."));

            } catch (Exception ex) {

                LogEx (ex);
                throw;
            }
        }
コード例 #28
0
ファイル: Program.cs プロジェクト: cleancodenz/ServiceBus
        private static void Two()
        {
            Console.WriteLine("Starting service...");

            // Configure the credentials through an endpoint behavior.
            TransportClientEndpointBehavior relayCredentials = new TransportClientEndpointBehavior();
            relayCredentials.TokenProvider =
              TokenProvider.CreateSharedAccessSignatureTokenProvider("RootManageSharedAccessKey", "fBLL/4/+rEsCOiTQPNPS6DJQybykqE2HdVBsILrzMLY=");

            // Create the binding with default settings.
            WebHttpRelayBinding binding = new WebHttpRelayBinding();

            binding.Security.RelayClientAuthenticationType = RelayClientAuthenticationType.None;
            // Get the service address.
            // Use the https scheme because by default the binding uses SSL for transport security.
            Uri address = ServiceBusEnvironment.CreateServiceUri("https", "johnsonwangnz", "Rest");

            // Create the web service host.
            WebServiceHost host = new WebServiceHost(typeof(EchoRestService), address);
            // Add the service endpoint with the WS2007HttpRelayBinding.
            host.AddServiceEndpoint(typeof(IEchoRestContract), binding, address);

            // Add the credentials through the endpoint behavior.
            host.Description.Endpoints[0].Behaviors.Add(relayCredentials);

            // Start the service.
            host.Open();

            Console.WriteLine("Listening...");

            Console.ReadLine();
            host.Close();
        }
コード例 #29
0
        /// <summary>
        /// OSA Plugin Interface - called on start up to allow plugin to do any tasks it needs
        /// </summary>
        /// <param name="pluginName">The name of the plugin from the system</param>
        public override void RunInterface(string pluginName)
        {
            pName = pluginName;

            try
            {
                this.Log.Info("Starting Rest Interface");

                bool showHelp = bool.Parse(OSAEObjectPropertyManager.GetObjectPropertyValue(pName, "Show Help").Value);

                serviceHost = new WebServiceHost(typeof(OSAERest.api), new Uri("http://localhost:8732/api"));
                WebHttpBinding binding = new WebHttpBinding(WebHttpSecurityMode.None);
                binding.CrossDomainScriptAccessEnabled = true;

                var endpoint = serviceHost.AddServiceEndpoint(typeof(IRestService), binding, "");

                ServiceDebugBehavior sdb = serviceHost.Description.Behaviors.Find<ServiceDebugBehavior>();
                sdb.HttpHelpPageEnabled = false;

                if (showHelp)
                {
                    serviceHost.Description.Endpoints[0].Behaviors.Add(new WebHttpBehavior { HelpEnabled = true });
                }

                this.Log.Info("Starting Rest Interface");
                serviceHost.Open();
            }
            catch (Exception ex)
            {
                this.Log.Error("Error starting RESTful web service", ex);
            }
        }
コード例 #30
0
        static void Main(string[] args)
        {
            Uri baseAddress = new Uri("http://localhost:8000/");
            ServiceHost selfHost = new WebServiceHost(typeof(MonitorService), baseAddress);

            try
            {
                // Step 3 Add a service endpoint.
                var t = new WebHttpBinding();

                selfHost.AddServiceEndpoint(typeof(IMonitorService), t, "test");
                WebHttpBehavior whb = new WebHttpBehavior();

                // Step 4 Enable metadata exchange.
                ServiceMetadataBehavior smb = new ServiceMetadataBehavior();
                smb.HttpGetEnabled = true;

                selfHost.Description.Behaviors.Add(smb);

                // Step 5 Start the service.
                selfHost.Open();
                Console.WriteLine("The service is ready.");
                Console.WriteLine("Press <ENTER> to terminate service.");
                Console.WriteLine();
                Console.ReadLine();

                // Close the ServiceHostBase to shutdown the service.
                selfHost.Close();
            }
            catch (CommunicationException ce)
            {
                Console.WriteLine("An exception occurred: {0}", ce.Message);
                selfHost.Abort();
            }
        }
コード例 #31
0
        protected override void OnOpening()
        {
            if (this.Endpoint == null)
            {
                return;
            }

            // if the binding is missing, set up a default binding
            if (this.Endpoint.Binding == null && this.Endpoint.Address != null)
            {
                this.Endpoint.Binding = GetDefaultBinding(this.Endpoint.Address.Uri);
            }
            WebServiceHost.SetRawContentTypeMapperIfNecessary(this.Endpoint, false);
            if (this.Endpoint.Behaviors.Find <WebHttpBehavior>() == null)
            {
                this.Endpoint.Behaviors.Add(new WebHttpBehavior());
            }
            base.OnOpening();
        }