Silverlight调用WCF服务引用
2012-03-18 17:06
288 查看
初学Silverlight,现在使用Silverlight调用WCF服务,今天遇到了两个异常,所以记录下解决方案。
异常一:
在 ServiceModel 客户端配置部分中,找不到引用协定“ServiceReference1.IService1”的默认终结点元素。这可能是因为未找到应用程序的配置文件,或者是因为客户端元素中找不到与此协定匹配的终结点元素。
异常二:
给定关键字不在字典中
造成上面异常的主要原因是在添加WCF项时,有两个选项,一是“WCF服务”,二是“启用Silverlight功能的WCF服务”
如果选择的是一的话,则在web.config文件中,会添加以下节点:
<service behaviorConfiguration="Test_1.Web.RESTBehavior" name="Test_1.Web.REST">
<endpoint address="" binding="wsHttpBinding" contract="Test_1.Web.IREST">
<identity>
<dns value="localhost" />
</identity>
</endpoint>
<endpoint address="mex" binding="mexHttpBinding" contract="IMetadataExchange" />
</service>
,将binding="wsHttpBinding"改为binding="basicHttpBinding"即可。在添加WCF服务引用后的Silverlight项目中自动生成的ServiceReferences.ClientConfig会自动添加节点,如果binding="wsHttpBinding"的话ServiceReferences.ClientConfig只有一个节点<configuration/>,这就是异常产生的原因。
如果选择的是二的话,则在web.config文件中,会添加以下节点:
<service behaviorConfiguration="Test_1.Web.RESTBehavior"
name="Test_1.Web.REST">
<endpoint address="" binding="customBinding" bindingConfiguration="customBinding1"
contract="Test_1.Web.REST" />
<endpoint address="mex" binding="mexHttpBinding" contract="IMetadataExchange" />
</service>
默认binding="customBinding",所以不会抛出异常。
注:以上demo只是在Silverlight3.0+vs2008环境下,Silverlight4.0暂时没试过。
异常一:
在 ServiceModel 客户端配置部分中,找不到引用协定“ServiceReference1.IService1”的默认终结点元素。这可能是因为未找到应用程序的配置文件,或者是因为客户端元素中找不到与此协定匹配的终结点元素。
异常二:
给定关键字不在字典中
造成上面异常的主要原因是在添加WCF项时,有两个选项,一是“WCF服务”,二是“启用Silverlight功能的WCF服务”
如果选择的是一的话,则在web.config文件中,会添加以下节点:
<service behaviorConfiguration="Test_1.Web.RESTBehavior" name="Test_1.Web.REST">
<endpoint address="" binding="wsHttpBinding" contract="Test_1.Web.IREST">
<identity>
<dns value="localhost" />
</identity>
</endpoint>
<endpoint address="mex" binding="mexHttpBinding" contract="IMetadataExchange" />
</service>
,将binding="wsHttpBinding"改为binding="basicHttpBinding"即可。在添加WCF服务引用后的Silverlight项目中自动生成的ServiceReferences.ClientConfig会自动添加节点,如果binding="wsHttpBinding"的话ServiceReferences.ClientConfig只有一个节点<configuration/>,这就是异常产生的原因。
如果选择的是二的话,则在web.config文件中,会添加以下节点:
<service behaviorConfiguration="Test_1.Web.RESTBehavior"
name="Test_1.Web.REST">
<endpoint address="" binding="customBinding" bindingConfiguration="customBinding1"
contract="Test_1.Web.REST" />
<endpoint address="mex" binding="mexHttpBinding" contract="IMetadataExchange" />
</service>
默认binding="customBinding",所以不会抛出异常。
注:以上demo只是在Silverlight3.0+vs2008环境下,Silverlight4.0暂时没试过。
相关文章推荐
- Silverlight调用WCF服务,在添加WCF服务引用时,报错如下:
- Silverlight调用WCF服务引用示例
- 解决 Silverlight 调用 WCF 服务 跨域访问 和 Silverlight 引用服务后配置文件不加载的问题
- 解决 Silverlight 调用 WCF 服务 跨域访问 和 Silverlight 引用服务后配置文件不加载的问题
- 解决 Silverlight 调用 WCF 服务 跨域访问 和 Silverlight 引用服务后配置文件不加载的问题
- 记录:Web无引用无配置方式动态调用WCF服务
- Silverlight同步(Synchronous)调用WCF服务
- Silverlight同步(Synchronous)调用WCF服务
- WCF调用--添加服务引用时找不到服务的解决办法
- silverlight学习<三> 记录今天silverlight调用WCF服务出现的各种状况
- Silverlight中异步调用WCF服务,传入回调函数
- Silverlight同步(Synchronous)调用WCF服务
- Silverlight里动态调用WCF服务
- Silverlight 中WCF 服务调用方法
- Silverlight同步(Synchronous)调用WCF服务
- WCF调用--添加服务引用时找不到服务的解决办法
- Silverlight下的WCF服务之三:调用WCF服务从数据库中取出数据显示在datagrid中
- Silverlight同步(Synchronous)调用WCF服务
- SilverLight通过Net.TCP(NetTCPBinding)方式调用WCF服务
- 一起谈.NET技术,Silverlight同步(Synchronous)调用WCF服务