托管WCF服务

时间:2010-05-15 16:22:11

标签: wcf silverlight iis hosting

我一直在使用一个使用WCF服务的Silverlight应用程序。 [在Visual Studio上]

为简单起见,我在项目中创建了一个WCF服务[as-in我没有在IIS中托管它,但让VS中的内置webdev服务器为我做这个]

它运行良好,现在我想在IIS 7.0上部署它,你能告诉我如果我需要独立托管服务,然后剩下的东西,或者如果我只是发布网站,该服务也将被托管, Silverlight客户端将能够与服务进行通信。

请帮忙!

由于

2 个答案:

答案 0 :(得分:1)

你基本上需要

  • IIS 7中的虚拟目录
  • 指示IIS如何实例化服务的SVC文件(服务文件)

您基本上有三个选项来部署服务实现:

  • 您可以将您的服务实现放入SVC文件的代码隐藏文件中 - 这将是我最不利的选择 - 基本上不这样做 - 它变得混乱并且没有任何好处

    < / LI>
  • 您可以将服务类文件(MyService.cs文件)和接口文件(IMyService.cs)放入App_Code目录(如果您使用的是网站项目类型) - 再一次,我不是特别喜欢这种方法

  • 您的最佳选择:将您的服务合同(接口)和服务实现放入该服务的单独类库程序集中,并将MyService.dll部署到下面的.\bin目录中SVC文件所在的虚拟目录。

然后将* .svc文件(纯文本文件)添加到虚拟目录,其中包含:

<%@ServiceHost language="c#" Debug="true" Service="MyService" %>

当然,您需要相应的web.config条目 - 但我确定您已经拥有这些条目,对吧?

您的服务地址现在是:

http://YourServer/VirtualDirectory/YourService.svc

有关详细信息,请参阅How to: Host a WCF Service in IIS

答案 1 :(得分:1)

马克告诉你如何。在回答您关于需求的问题时,您将需要并希望将服务与Silverlight资产(静态引用和XAP)分开。这对于较小的站点可能没有多大意义,但随着您的规模增长,这使您有机会将Silverlight资产定位在与您的服务(例如内容分发网络)不同的位置,以便将它们传递给用户尽可能快。