【发布时间】:2011-09-19 13:15:06
【问题描述】:
在我的 silverlight 应用程序中,我使用对 wcf 服务的服务引用。在我将此项目部署到我的测试 IIS 后,我看不到任何存储所有端点信息的 .config 文件。该 ServiceReferences.ClientConfig 打包在 xap 包中。那么我将如何将它部署到客户的服务器上呢?我需要一种在那里配置端点的方法。你是怎么做到的?
【问题讨论】:
标签: silverlight wcf
在我的 silverlight 应用程序中,我使用对 wcf 服务的服务引用。在我将此项目部署到我的测试 IIS 后,我看不到任何存储所有端点信息的 .config 文件。该 ServiceReferences.ClientConfig 打包在 xap 包中。那么我将如何将它部署到客户的服务器上呢?我需要一种在那里配置端点的方法。你是怎么做到的?
【问题讨论】:
标签: silverlight wcf
这里不是尝试支持在 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 有一个端点,我会使用它(有助于调试/测试)。
【讨论】:
如果您的意思是在应用程序发布后配置端点,那么没有办法轻松完成(您可以解压缩 xap、更改 ServiceReferences.ClientConfig、重新压缩...)
【讨论】: