2015-07-24 3 views
1

Я создал хостинг для Windows. Эта служба Windows предоставляет простой сервис wcf. После этого я установил службу. Но я не вижу его в services.msc.Служба WCF, размещенная в службе Windows

namespace Microsoft.ServiceModel.Samples 
{ 
    // Define a service contract. 
    [ServiceContract(Namespace = "http://Microsoft.ServiceModel.Samples")] 
    public interface ICalculator 
    { 
     [OperationContract] 
     double Add(double n1, double n2); 
     [OperationContract] 
     double Subtract(double n1, double n2); 
     [OperationContract] 
     double Multiply(double n1, double n2); 
     [OperationContract] 
     double Divide(double n1, double n2); 
    } 

    // Implement the ICalculator service contract in a service class. 
    public class CalculatorService : ICalculator 
    { 
     // Implement the ICalculator methods. 
     public double Add(double n1, double n2) 
     { 
      double result = n1 + n2; 
      return result; 
     } 

     public double Subtract(double n1, double n2) 
     { 
      double result = n1 - n2; 
      return result; 
     } 

     public double Multiply(double n1, double n2) 
     { 
      double result = n1 * n2; 
      return result; 
     } 

     public double Divide(double n1, double n2) 
     { 
      double result = n1/n2; 
      return result; 
     } 
    } 

    public class CalculatorWindowsService : ServiceBase 
    { 
     public ServiceHost serviceHost = null; 
     public CalculatorWindowsService() 
     { 
      // Name the Windows Service 
      ServiceName = "WCFWindowsServiceSample"; 
     } 

     public static void Main() 
     { 
      ServiceBase.Run(new CalculatorWindowsService()); 
     } 

     // Start the Windows service. 
     protected override void OnStart(string[] args) 
     { 
      if (serviceHost != null) 
      { 
       serviceHost.Close(); 
      } 

      // Create a ServiceHost for the CalculatorService type and 
      // provide the base address. 
      serviceHost = new ServiceHost(typeof(CalculatorService)); 

      // Open the ServiceHostBase to create listeners and start 
      // listening for messages. 
      serviceHost.Open(); 
     } 

     protected override void OnStop() 
     { 
      if (serviceHost != null) 
      { 
       serviceHost.Close(); 
       serviceHost = null; 
      } 
     } 
    } 

    // Provide the ProjectInstaller class which allows 
    // the service to be installed by the Installutil.exe tool 
    [RunInstaller(true)] 
    public class ProjectInstaller : Installer 
    { 
     private ServiceProcessInstaller process; 
     private ServiceInstaller service; 

     public ProjectInstaller() 
     { 
      process = new ServiceProcessInstaller(); 
      process.Account = ServiceAccount.LocalSystem; 
      service = new ServiceInstaller(); 
      service.ServiceName = "WCFWindowsServiceSample"; 
      Installers.Add(process); 
      Installers.Add(service); 
     } 
    } 
} 

Любой может указать, какую ошибку я делаю?

+0

служба будет называться «WCFWindowsServiceSample» в services.msc, вы можете увидеть его под этим именем – BhavO

+0

ты была запущена installutil as administrator – BhavO

+0

Привет, как прошло? – BhavO

ответ

0

Убедитесь, чтобы запустить командную строку от имени администратора, в противном случае вы не будете иметь достаточно прав для установки службы с помощью InstallUtil, и вы увидите ниже сообщение:

Фаза Откат успешно завершена.

Выполненная транзакция завершена. Не удалось выполнить установку, и был выполнен откат .

Если вы работаете как администратор вы увидите ниже сообщение:

коммита, фаза успешно завершена.

Выполненная транзакция завершена.

однажды сделано, вы должны быть в состоянии видеть «WCFWindowsServiceSample» в services.msc

+0

Я получаю следующий журнал – meriaz

Смежные вопросы