有很多关于这个主题的文章,但都没有帮助我。我正在尝试实现可以在没有“添加服务参考...”的情况下使用的服务,主要是来自hhttp://www.netfxharmonics.com/2008/11/Understanding-WCF-Services-in-Silverlight-2。 / p>
我做了一个小项目来重现问题。 http://hotfile.com/dl/96710945/9991ac3/SilverlightApplication8.zip.html
我试过像以下那样的解决方案:
- 处理Silverlight中的错误
- 跨域策略
等
完成所有标准检查,例如,服务处于活动状态且可达,客户端成功创建通道等。
我整整一周都遇到了这个问题,我无法理解。
每一个帮助都是值得欣赏的。
答案 0 :(得分:0)
尼, 尝试在您的Web主机项目中创建服务。在那里添加服务,然后您可以选择在Silverlight应用程序中将其添加为参考。只需在SilverlightApplication8.Web中添加服务即可。右键单击SilverlightApplication8.Web - >添加新项目 - >左边选择Silverlight - >支持Silverlight的WCF服务。然后添加对SilverlightApplication8的引用。
答案 1 :(得分:0)
我没有深入调查,但我认为服务实现类型不好。
所以我的工厂类似乎:
公共类TimeServiceFactory 继承System.ServiceModel.Activation.ServiceHostFactoryBase
Public Overrides Function CreateServiceHost(ByVal constructorString As String, ByVal baseAddresses() As System.Uri) As System.ServiceModel.ServiceHostBase
Dim host As New ServiceHost(constructorString, baseAddresses)
需要更改:
公共类TimeServiceFactory 继承System.ServiceModel.Activation.ServiceHostFactoryBase
Public Overrides Function CreateServiceHost(ByVal constructorString As String, ByVal baseAddresses() As System.Uri) As System.ServiceModel.ServiceHostBase
Dim host As New ServiceHost(GetType(TimeService), baseAddresses)
区别是我没有传递constructorString(它有服务类实现类的信息),我传递了GetType(TimeService)instate,它提供了正确的类型信息。