How to locally host a WCF service on IIS that will be available to clients over the internet, and configure SSL for it?

I have a C# WCF service and client that I wrote so that employees of a business can clock in/out from a client on a mobile device (for now, a netbook). This is tested and works well in development, and now it's time to move it to production.

Production is an HP Proliant ML110 server running Win 2008 R2 x64 at the business's office (which is a home office). Since it's a home office, with just a normal home cable internet connection, I've set up a free no-ip dynamic DNS account and port forwarded so that web traffic goes to this server properly.

From a remote machine, I can access the WSDL for the webservice where it is hosted on IIS on the server, so as an example (not the actual URL) using http://example.no-ip.org/exampleService/LaborService.svc?wsdl, I can see the WSDL from a remote machine over the internet.

Now, I need to be able to host this securely using SSL, and need to configure IIS and the webservice endpoint / client properly so that remote clients can authenticate and make webservice calls over the internet to this webservice.

The problem I have is, I don't really know how SSL works (at least I don't know what's required to use it), and I don't know how to configure IIS or the webservice or the client.

By default, the service and client are using wsHttpBinding with Windows authentication. I think the best thing since this isn't really any highly sensitive data (just employee name, id, refcode / job name, id, refcode / work site id, name, ref code / clock in and out time), would be to have the minimal security necessary to get it to work so I can connect on a remote client.

So right now, I have Windows 2008 with IIS7 and a C# WCF service deployed on it from which I can connect a local client. What do I have to do to make this available publicly? I know there's alot of options, but what I think I need is for someone to just give me their opinion on the best way to do this, and instructions or guidance on how to get that done (so please I know it's a broad question with alot of answers, but just pick one solution that you think is best and explain it to me; I'll be forever grateful).

As an example of how ignorant I am of how to deploy a web application; I don't know what is needed to get an SSL certificate, or what to do with it if I had one, or how to configure IIS, the service and the client to use it. So instructions on how to do those things would be awesome.

Thanks.

Answers


Here is a tutorial with screenshots (look under WCF Hosting).

For WCF Security configuration please look here:

Link1 , Link2

For a SSL explaination and IIS configuration please look here:

Link1 , Link2

When you take some time to read those sites carefully you should be able to set up your configuration in less than 30 minutes.

Please let me know if this was helpful.


There's no way someone could answer all of this is one answer. You'll need to do some research. Check out Essential Windows Communication Foundation (WCF): For .NET Framework 3.5, or any another WCF book.


Need Your Help

Multiple boxplots with ggplot2 in the same layer from a melted data frame with a condition

r ggplot2 boxplot melt

I have some data here [in a .txt file] which I read into a data frame,

MySQL: Join three tables

php mysql sql database join

I'm new to this so please forgive the basic question. I'm just having a hard time conceptualizing how this would work.