Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/wcf/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Silverlight的Wcf配置_Silverlight_Wcf - Fatal编程技术网

Silverlight的Wcf配置

Silverlight的Wcf配置,silverlight,wcf,Silverlight,Wcf,在我的silverlight应用程序中,我使用wcf服务引用。将此项目部署到测试IIS后,我看不到存储所有端点信息的任何.config文件。ServiceReferences.ClientConfig打包在xap包中。那么,我将如何将其部署到客户的服务器上?我需要一种在那里配置端点的方法。如何做到这一点?如果您的意思是在应用程序发布后配置端点,那么就没有办法轻松做到这一点(您可以解压xap,更改ServiceReferences.ClientConfig,重新压缩…而不是尝试支持在xap中编辑C

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

如果您的意思是在应用程序发布后配置端点,那么就没有办法轻松做到这一点(您可以解压xap,更改ServiceReferences.ClientConfig,重新压缩…

而不是尝试支持在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有端点,我会使用它(有助于调试/测试)。

@Nickolodeon,我理解您的观点,但xap文件的目标之一是打包和应用程序及其所有依赖项。将配置文件移出它可以防止单文件目标。在我的SL应用程序中,我通常使用构建事件来复制相应的服务配置文件,具体取决于配置(dev、test、prod…),我将尝试InitParams方法。但当一切都失败时,修改xap才是正确的选择——我试过了,效果很好)