2011-09-19 44 views
4

在我的silverlight应用程序中,我使用对wcf服务的服务引用。将此项目部署到我的IIS测试后,我看不到任何.config文件,其中存储了所有端点信息。该ServiceReferences.ClientConfig打包在xap软件包中。那么我将如何将其部署到客户的服务器呢?我需要一种方法来配置端点。你是怎样做的?Silverlight的Wcf配置

回答

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有一个端点,我使用它(有助于调试/测试)。

3

如果你的意思是配置端点的应用程序已发布后那么有没有办法做很容易(你可以解压XAP,改变ServiceReferences.ClientConfig,重新压缩...)

+1

.NET有什么意想不到的方法!但是,谢谢。 – Nickolodeon

+0

@Nickolodeon,我理解你的观点,但xap文件的目标之一是打包和应用程序及其所有依赖项。将配置文件从其中移出可防止单个文件的目标。在我的SL应用程序中,我通常使用生成事件来根据配置复制相应的服务conf文件(dev,test,prod ...) –

+0

我会尝试InitParams方法。但是,当所有失败,修改XAP是要走的路 - 我尝试了它,它的工作原理) – Nickolodeon