在我的silverlight应用程序中,我使用服务引用wcf服务。将此项目部署到测试IIS后,我看不到任何存储所有端点信息的.config文件。 ServiceReferences.ClientConfig打包在xap包中。我如何将其部署到客户的服务器呢?我需要一种在那里配置端点的方法。你是怎么做到的?
答案 0 :(得分:3)
如果您的意思是在应用程序发布后配置端点,则无法轻松完成(您可以解压缩xap,更改ServiceReferences.ClientConfig,重新压缩...)
答案 1 :(得分:3)
这不是尝试支持在XAP中编辑clientconfig文件,而是另一种方法。
将Web服务端点地址添加到承载Silverlight应用程序的HTML页面中的Silverlight InitParams。也许通过ASP.NET动态设置initparams。在创建客户端服务代理时以编程方式使用此地址。
另一种选择是假设Web服务始终位于托管页面的相对目录中。我使用了类似的东西:
new Uri(HtmlPage.Document.DocumentUri, new Uri("./MyService/MyService.svc", UriKind.Relative));
组合这两个选项效果很好,如果缺少InitParams,我会使用知名位置的相对路径(有助于部署/生产)。如果IntiParams有端点,我会使用它(有助于调试/测试)。