1. Open the solution attached here.
2. Add a new project > select Windows service from Visual C# > Windows template
3. Name it WinSrvHost and click OK
4. Go to the code view of Service1.cs, notice that you have been provided with a template that you can start working with. Notice that this class is derived from the ServiceBase class.
6. Add reference to System.Servicemodel and ProductServiceLibrary project.
7. Create a ServiceHost, by add the following code:
ServiceHost host = new ServiceHost(typeof(ProductService));
8. Override OnStart() method of ServiceBase
Add the following code
host.Open(); //use the one in the example
9. Override OnStop() method of ServiceBase
Add the following code
host.Close();//use the one in the example
10. Copy app.config from console host. Note that service metadata behavior is enabled (httpGetEnabled=true).
11. Add an installer - Go to the Design view of the Windows service host, right click on the designer > select Add Installer
12 Click on serviceProcessInstaller1 > in properties Change the user account to LocalSystem (Higher privilege built in windows account, not normally used in production, - it allows service to register http endpoint with Http.sys)
13. Build the project
14. To test it, you will need to install it.
15. Open Developer Command Prompt as an Administrator
16. Navigate to the folder where the installer is located (project's bin/Debug folder), and run the following command:
> installutil WindowsServiceHost.exe
17. If installation successful you should be able to see the service running in the services. To opens services type the following in the developer command prompt.
> services.msc
18. Locate the service and double click to open it > click start. This starts the service.
19. Open a browser and try accessing metadata. If you are able to access the metadata the service is up and running successfully. Just to verify if you are access the right service, stop the service, and try to access the metadata again. You should not be able to access the metadata page.
Test the client with Windows Service Host
20. First, we need to update the service reference of the client. To do this start the service again.
21 update the service reference of the client.
22. set the client project as the startup project > run the project.
Comments
Post a Comment