2010-05-15 291 views
0

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

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

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

请帮忙!

感谢

回答

1

你基本上需要

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

你基本上有三种选择来部署您的服务实施:

  • 你可以把你的服务实现到代码隐藏SVC文件的文件 - 这将是我最有利的选择 - 基本不做它 - 它就会变得混乱,并没有提供好处

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

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

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

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

当然,你需要适当的web.config条目 - 但我我确定你已经拥有了,对吧?

您的服务现在的地址是:

http://YourServer/VirtualDirectory/YourService.svc 

欲了解更多信息,请参阅How to: Host a WCF Service in IIS

+0

非常感谢,帮助! – Jayesh 2010-05-15 17:35:44

1

马克得到了你该怎么办。为了回应您关于需求的问题,您将需要并希望将服务从Silverlight资产(静态引用和XAP)中分离出来。这对于小型网站来说可能没有多大意义,但随着您的规模不断扩大,您可以在不同于服务的位置(如内容分发网络)找到您的Silverlight资产,以便将它们交付给用户尽可能快。