I'm trying to develop and deploy a WCF service using VS2008 and Vista home premium. I don't have IIS running and understand I don't need to if I manually configure the WCF app ... using netsh.exe I believe.
Can anyone give me clear guidance on how to go from the development project in VS2008 to a useable service?
Many thanks.
A WCF service needs a host to run. As IIS is out of the question you have a couple of possibilities left:
Write a Windows NT service and host it there
Write a managed application which will host your service (less robust)
As far as netsh.exe is concerned I don't see much relevance with WCF.
Related
I have some simple questions regarding the publishing of WCF RIA domain services under IIS 7.0:
1.) Do I need a *.svc file to publish a WCF RIA domain service under IIS 7.0? Yes/No?
2.) If 1.) is yes, is there any way to generate this *.svc file automatically or do I have to do it on my own manually? Automatically/Manually?
3.) My domain services are simple classes in *.cs files. Do I need to configure them "Always Copy into publishing folder" OR do the domain services "live" in the build "Web.dll"? Always Copy/Live in the Web.dll?
My questions seem simple, but I am having a real hard time to get this working under IIS 7.0. Debugging and testing in the internal VS 2010 development server is no problem.
I never had a problem to publish a "normal" WCF Service, because there are plenty of good advises out there, but for WCF RIA Services it's a pain in the ass to me.
Thanks in advance for your short answers. If you have any good link to a tutorial on publishing WCF RIA Services with Silverlight 5.0, pleaaase post it. I am working on this for days now and have googled my brain to death. I really don't understand that this is so hard. I have found some links here on SO, but some of them are already not existing anymore, some of them seem be useless, because the WCF RIA Services changed over the time.
Thank you and I really appreciate any help.
EDIT: I already can debug the WCF RIA Service code on IIS in VS 2010, but only if the service is called from a ASP.NET code behind file. That tells me, that the WCF RIA services are working and running on IIS. This question is all about publishing the services to outer world.
Did you try to publish the project from the visual studio ?
I found some interesting links to read:
http://msdn.microsoft.com/en-us/library/ff426912(v=vs.91).aspx
http://timheuer.com/blog/archive/2009/12/10/tips-to-deploy-ria-services-troubleshoot.aspx
http://social.msdn.microsoft.com/Forums/da-DK/wcf/thread/84b377b2-45d1-44d3-ba1a-7d9ef5ee939a
I hope this is helpful for you.
I've been working with WCF fairly extensively for over two years now and have almost always taken the "lazy" route and deployed everything through IIS. Some of the reading I've done lately is starting to trend to where developers are using custom hosts in windows services or as console applications. Is there major benefits to switching over to that paradigm or is my current strategy of hosting everything in IIS give me everything I need to do WCF services?
When you go the self-hosting route, you limit the scalability & reliability options of your services. If scalability isn't a concern, you still need to consider all the service monitoring functionality that you'd have to create to be sure your services are running reliably.
If I had to pick two reasons to prefer IIS hosting over self-hosting they would be the flexibility of the WAS service instantiation model for IIS 7.x and the Windows Server AppFabric features for WCF 4.
If you're using a pre-WAS version of IIS (5 or 6), Windows services may be your best (only?) good bet for hosting WCF services that communicate via named pipes or netTCP (anything other than HTTP).
In the 3rd Edition of Programming WCF Services (link), Lowy suggests using Windows Server AppFabric in some situations, and suggests self hosting in a few cases - when you need to use the service bus and IIS 7.5 is not available, for example. Pages 22 and 23 show a couple of simple charts to help determine when to use self hosting over IIS, WAS or AppFabric. I think the first chapter (maybe more) is available for free if you get a Kindle sample.
Other than these scenarios, I'm not sure why you'd ever want to chose any sort of self-hosting over WAS. I'm curious to see if anyone presents good reasons.
we are currently on windows server 2008 R2, IIS 7.5 and we are going to open some of our data via WCF services.
To do that, we are planing to host our services on IIS but I heard that it is not a good idea for WCF services.
The problem with the WAS is that it is general purpose hosting engine. it's actually unaware that it's actually hosting a WCF service or a website (as far as I know)
I heard that we can install an extension to the WAS called the Windows Server AppFabric.
does anybody have any experience on
AppFabric?
should my app have to use so called
'Service Bus' to use AppFabric?
should I go ahead and definitely
install it?
at most basic level, how and where
can I install it? does it require
any licence?
Thanks in advance.
I don't think IIS us a bad idea - many developers use IIS to host their WCF services. IMHO you'd only use what you need, so if all you need is a hosting framework, then IIS is a very good option for WCF services. It is (almost) unaware that it's hosting a WCF service, but that in the majority of the cases isn't an issue.
Windows Server AppFabric as it's currently released provides three capabilities: a distributed caching system (so if you need to scale out your service you can use this cache to share state among the nodes); a packaging / deployment interface (in which you can package a project and deploy it a little easier in IIS); and a management / monitoring interface (where you can monitor the instances of WCF and Workflow services which are running in your machine).
Answers to your questions:
Yes, some people have experience with it :)
No, the application doesn't have to use it. You'd only use the ServiceBus if you need its functionality (relay)
Only if you need it. If you don't need caching or the monitoring capabilities, for example, then I'd say you don't need it. I've found in the past that the least number of components I have in my system, the less likely it is to break.
Go to http://msdn.microsoft.com/en-us/windowsserver/ee695849.aspx. And AFAIK you don't need any license, but you can check on the download page to see if it has more information.
There is no real common reason why not to host a service in IIS/WAS.
If you want to absolutely, totally 100% make sure that your service is continuously running some process, such as a continuous loop or polling monitor, and if any interruption no matter how brief is a major issue, then you'd want to look at alternative hosts.
Win Server AppFabric is most useful for WF Service hosting and caching. Note however that Win Server AppFabric + Win Server Service Bus 1.0 represents the first steps in convergence between the Azure platform and the Windows Server private platform.... In other words, whichever of the two ways you choose, that's what is going to be earning your bread and butter in 5 years time.
I have previously built WPF apps that host their own WCF service running on a custom port. Which is a great simple way for other apps to send messages between each other.
I have recently inherited a Silverlight 4 app from a client and they would like a way to send messages to it. I figured that WCF would be a simple way, but it is not possible to host a service in Silverlight.
What is a good, simple, way to send messages/communicate with a Silvelight app?
I have seen a little about the LocalMessageSender but I have no experience with it, can a WPF app, running on a different machine send a message to a Silverlight application using the LocalMessageSender class?
(Polling from the Silverlight app is not a prefered option)
I dont mind having to run the app in out of browser mode to get around some issues if need be.
EDIT Updated question
You can add Silverlight enabled WCF services and communicate with them like you did in the WPF app.
just so you know, SL only supports basicHttpBinding and (new in SL4) netTcpBinding. The later is intended for Intranet scenarios. As tchrikch said, you should be able to reference your service just by adding a simple reference in Visual Studio. As for the communication part, this may prove to be a little difficult. I would suggest looking at HTML5 WebSockets and see if you can push messages to the client from the server that way. I've only recently started looking at this as a solution for one of our projects but haven't had time to look any deeper.
HTH
Steve
I’m developing a .NET/C# application software for an instrument which has a built-in PC (Core 2 CPU/2.66GZ/4GB RAM) and will have access to the Internet from behind the facility IT firewall. The software is made up of two parts: a rich client desktop app for UI and device control and a web app (silverlight) for providing remote maintenance such as device configuration and calibration via internet using browser. This device web site will be hosted using IIS locally on the instrument. My questions are:
What is the risk of running an IIS hosted web site on a device?
What does it take to make it secure so that data and operation of the instrument is immune to potential hackers.
Is it a better design to provide web services (or WCF services) as the interface for remote maintenance? In this case, I’ll create a rich client service utility program that can consume the web services over Internet for remote maintenance purpose.
Wow, thats an interesting project!
Personally I would take a different approach and have the device/instrument pull the maintenance info from a centralized server instead of hosting the service that performs it.
Do you really want to worry about the maintenance of updates & patches on that device.
but Ill try to answer like you didn't have any choice.
1) the risks are the same as any website. you have to deal with authentication, in your case I would have allowed IP ranges.. etc.
2) Nothing is immune. But just google WCF security for a start.
3) Yes that is a better approach if the services are hosted outside the "instrument"
good luck, sounds like a fun one.
See the WCF Developer Center for much information on WCF.
One feature of WCF is that it's possible to host a WCF service in almost any kind of program. In particular, you could host a secure WCF service on your device - without needing to run IIS or any other web server at all.