问题:

Silverlight项目中添加服务引用后会在Silverlight项目中生成一个ServiceReferences.ClientConfig文件,这个文件中包含了引用服务的绑定(bindings)和终结点(Endpoint)的配置信息。下面是引用一个WCF服务后自动生成的配置信息:

<configuration>

<system.serviceModel>

<bindings>

<basicHttpBinding>

<binding name="BasicHttpBinding_IService1" maxBufferSize="2147483647"

maxReceivedMessageSize="2147483647">

<security mode="None" />

</binding>

</basicHttpBinding>

</bindings>

<client>

<endpoint address="http://localhost:4177/Services/Service1.svc"

binding="basicHttpBinding" bindingConfiguration="BasicHttpBinding_IService1"

contract="ServiceReference1.IService1" name="BasicHttpBinding_IService1" />

</client>

</system.serviceModel>

</configuration>

在程序开发阶段,使用上面的配置信息不会有什么错误。在部署程序时,服务的地址通常和开发时使用的服务地址是不一样的,这时就需要修改上面的配置信息中的终结点的地址。但是Silverlight项目编译后会将ServiceReferences.ClientConfig嵌入到生成的xap文件中,这给修改带来了一定难度。

以上问题的描述参考自http://www.aspxcs.net/HTML/2345222075.html

当然,你也可以用zip解压缩,修改ServiceReferences.ClientConfig后再放回去,但每次都这么处理对软件的产品化发布很不利。

解决办法:

看了http://zdd.me/managingendpoint发布的解决办法,我的项目是跟WCF在同一个站点中,使用的是Silverlight4,因此可以使用相对路径。具体如下:

如果WCF服务和Silverlight应用在同一个站点,同时使用的是Silverlight 4,比如你的Silverlight应用包是在http://foo.com/clientbin/myapp.xap 路径,WCF服务路径是http://foo.com/helloworldservice.svc

那么在Silverlight 4中可以使用相对路径的服务引用。如果你的XAP包是在/ClientBin/MyApp.xap,而服务是在与ClientBin相同的根路径/HelloWorldService.svc,那么就可以使用“../HelloWorldService.svc”。也就是说相对路径是相对与XAP包所在的路径。配置信息如下:

1: <endpoint address="../HelloWorldService.svc"

2:                 binding="customBinding" bindingConfiguration="RelativeBinding"

3:                 contract="HelloServices.HelloWorldService" name="RelativeBinding" />

经过测试,此方法可行!问题解决。

(转)在WCF服务的ServiceReferences.ClientConfig中使用相对路径的更多相关文章

  1. WCF服务发布到IIS中去 在WCF调试

    第一个WCF程序 1. 新建立空白解决方案,并在解决方案中新建项目,项目类型为:WCF服务应用程序.建立完成后如下图所示: 2.删除系统生成的两个文件IService1.cs与Service1.svc ...

  2. WCF服务发布到IIS中去(VS2013+win7系统)

    第一个WCF程序 1. 新建立空白解决方案,并在解决方案中新建项目,项目类型为:WCF服务应用程序.建立完成后如下图所示: 2.删除系统生成的两个文件IService1.cs与Service1.svc ...

  3. Ajax跨域访问wcf服务中所遇到的问题总结。

    工具说明:vs2012,sql server 2008R2 1.首先,通过vs2012建立一个wcf服务项目,建立好之后.再新开一个vs2012 建立web项目,通过jQuery的ajax方法访问服务 ...

  4. Wince 中访问WCF服务

    由于本文并非WinCE开发普及篇,所以一些WinCE开发和WCF开发的基础还请移步百度和谷歌寻找答案,然后结合本文开发出WinCE中如何访问WCF,谢谢. 开发环境 IDE:Visual Studio ...

  5. 系统上线后WCF服务最近经常死掉的原因分析总结

    前言 最近系统上线完修改完各种bug之后,功能上还算是比较稳定,由于最近用户数的增加,不知为何经常出现无法登录.页面出现错误等异常,后来发现是由于WCF服务时不时的就死掉了.后来就开始分析问题.得到的 ...

  6. [转]学习 WCF (6)--学习调用WCF服务的各种方法

    转自:http://www.cnblogs.com/gaoweipeng/archive/2009/07/26/1528263.html 作者这篇博文写得很全面. 根据不同的情况,我们可以用不同的方法 ...

  7. WCF学习系列一_创建第一个WCF服务

    原创作者:灰灰虫的家http://hi.baidu.com/grayworm WCF开发实战系列一:创建第一个WCF服务 在这个实战中我们将使用DataContract,ServiceContract ...

  8. WCF服务最近经常死掉

    系统上线后WCF服务最近经常死掉的原因分析总结   前言 最近系统上线完修改完各种bug之后,功能上还算是比较稳定,由于最近用户数的增加,不知为何经常出现无法登录.页面出现错误等异常,后来发现是由于W ...

  9. WCF 一步一步 发布 WCF服务 到 IIS (图)

    WCF 一步一步 发布 WCF服务 到 IIS (图) 使用VS自带的WCFSVCHost(WCF服务主机)发布WCF服务,时刻开发人员测试使用. 下面我们来看一下如何在IIS中部发布一个WCF服务. ...

随机推荐

  1. ArcGIS案例学习笔记-点群密度统计

    ArcGIS案例学习笔记-点群密度统计 联系方式:谢老师,135-4855-4328,xiexiaokui#qq.com 目的:对于点群,统计分布密度 数据: 方法: 1. 生成格网 2. 统计个数, ...

  2. 基础的正则表达式与re模块(2)

    一.元字符 字符组是元字符中的一个.在字符组中所有的字符都可以匹配任意一个字符位置上能出现的内容,如果在字符串中有任意一个字符是字符组中的内容,那么就是匹配上的项. [0-9]   [a-z]    ...

  3. shell 脚本传参

    在 shell 中我们会见到  $0.$1.$2这样的符号,这是什么意思呢? 简单来说 $0 就是你写的shell脚本本身的名字,$1 是你给你写的shell脚本传的第一个参数,$2 是你给你写的sh ...

  4. QPS/TPS/并发量/系统吞吐量的概念

    我们在日常工作中经常会听到QPS/TPS这些名词,也会经常被别人问起说你的系统吞吐量有多大.这个问题从业务上来讲,可以理解为应用系统每秒钟最大能接受的用户访问量.或者每秒钟最大能处理的请求数: QPS ...

  5. azkaban编译以及安装(调度系统)

    编译源码 下载azkaban源码 git clone https://github.com/azkaban/azkaban.git   jdk要求是1.8以上版本 export JAVA_HOME=/ ...

  6. Java中Properties集合总结

    一:定义 表示一个持久的集,可以存在流中或者从流中加载.用来读取Java的配置文件,在Java中为.properties为后缀名的文本文件. 二:特点 是 Hashtable子类,map集合方法都可以 ...

  7. XSSExcelUtil

    package com.numa.util; import org.apache.poi.hssf.usermodel.*;import org.apache.poi.hssf.util.HSSFCo ...

  8. 物料没加DUMMY

    会加入DUMMY的表 IN_ITEM,IN_ITEM_SITE,IN_SALES_ORDER 加入DUMMY的存储过程名为SAP_MATERIAL_SO. FP_CHANGE_MO_ROUTING的第 ...

  9. 对象转化为json

    google开发的Gson转换利器,String json = new Gson ().toJson(object); 一行代搞定. 别忘了引入jar包 转自:https://zhidao.baidu ...

  10. python 自动补全

    一.查看python 环境变量 >>> import sys>>> sys.path 编写 tab.py import sys import atexit impo ...