// // Licensed to the Apache Software Foundation (ASF) under one or more // contributor license agreements. See the NOTICE file distributed with // this work for additional information regarding copyright ownership. // The ASF licenses this file to You under the Apache License, Version 2.0 // (the "License"); you may not use this file except in compliance with // the License. You may obtain a copy of the License at // // http://www.apache.org/licenses/LICENSE-2.0 // // Unless required by applicable law or agreed to in writing, software // distributed under the License is distributed on an "AS IS" BASIS, // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. // See the License for the specific language governing permissions and // limitations under the License. // // .Net StockTrader Sample WCF Application for Benchmarking, Performance Analysis and Design Considerations for Service-Oriented Applications //====================================================================================================== // This is one of two optional host programs for the Order Processor Service . In this case a Console // application. You can also optionally run the Windows host. //====================================================================================================== //====================================================================================================== // Code originally contributed by Microsoft Corporation. // This contribution to the Stonehenge project is limited strictly // to the source code that is submitted in this submission. // Any technology, including underlying platform technology, // that is referenced or required by the submitted source code // is not a part of the contribution. // For example and not by way of limitation, // any systems/Windows libraries (WPF, WCF, ASP.NET etc.) // required to run the submitted source code is not a part of the contribution //====================================================================================================== using System; using System.Collections.Generic; using System.Data; using System.Text; using System.Threading; using System.Net; using System.Diagnostics; using System.ServiceModel; using System.ServiceModel.Configuration; using System.ServiceModel.Channels; using System.ServiceModel.Description; using System.ServiceModel.Dispatcher; using System.ServiceModel.Activation; using Trade.OrderProcessorServiceConfigurationSettings; using Trade.OrderProcessorContract; using Trade.OrderProcessorImplementation; using Trade.Utility; namespace Trade.OrderProcessorConsoleHost { class OrderProcessor_ConsoleHost { /// p /// The program entry class. Note how this simply inherits from the provided base class. /// class MyHost : IDisposable { private ServiceHost host; public void startUp() { string shortHostName = System.Net.Dns.GetHostName(); IPHostEntry myEntry = System.Net.Dns.GetHostEntry(shortHostName); string myName = myEntry.HostName; Settings thisSettings = new Settings(); Uri TradeServiceUriBase = new Uri("http://" + myName + ":8000/tradeorderprocessor"); Uri TradeServiceSecUriBase = new Uri("https://" + myName + ":8005/tradeorderprocessor"); //Create a ServiceHost for the Orderprocessor service. Type serviceType = typeof(OrderProcessor); host = new ServiceHost(serviceType, TradeServiceUriBase, TradeServiceSecUriBase); host.Open(); StockTraderUtility.DescribeService(host); } public void Dispose() { if (host != null) { host.Abort(); host.Close(); } } } [STAThread] static void Main(string[] args) { Console.SetWindowSize(Console.LargestWindowWidth - 30, Console.LargestWindowHeight - 30); Console.Title = ".NET StockTrader Order Processor Service Host"; using (MyHost myHost = new MyHost()) { try { myHost.startUp(); Console.WriteLine(" {0} is started.", Console.Title); Console.WriteLine(); } catch (Exception ex) { StockTraderUtility.Logger.WriteException(ex); } Console.WriteLine("Press Enter to quit."); Console.ReadLine(); } } } }