(已解决)局域网内的部分IE client无法从Windows server 2003发布的WCF接口中读取数据...

2009-03-26

环境:

服务器:Windows server 2003 sp2 + WCF Host 服务管理器 + Oracle 10g数据库

客户端:Windows XP sp2 + WPF web application

 

待解决问题描述:

在Windows server 2003上发布的WCF服务,一部分Windows XP用户无法在客户端读取从Oracle中取出的数据。

 

测试后现象

1. 部分Windows XP用户能够正常访问,目前测试的Windows vista用户都能正常读取数据。

2. WCF Host服务端改为Windows vista平台,其中一台Windows XP sp3客户端能够正常读取数据,另外3台Windows XP sp2和1台Windows XP sp3客户端仍然不能正常读取数据。

3. WCF Host服务端改为Windows XP sp2平台,2中的所有Windows XP用户都不能正常读取数据。

 

理想方案:

因为企业里目前最稳定和低成本的软件环境是Windows server 2003 sp2 + Windows XP sp2,所以希望该环境下的用户都能正常读取数据。

 

 

------------------------------------------------------------------------------------------------------------------------------------

  2009-03-27 问题解决

 问题解决方法

WCF binding的缺省设置的安全级别为Windows,要在局域网内正确访问,需要将安全属性设为None。

我的Service的 endpoint 的bindingConfiguration="MESService_NetTcpBinding"

ContractedBlock.gif ExpandedBlockStart.gif bindingConfiguration
<bindings>
      
<netTcpBinding>
        
<binding name="Service_NetTcpBinding" closeTimeout="01:00:00"
              openTimeout
="01:00:00" receiveTimeout="01:00:00" sendTimeout="01:00:00"
              transactionFlow
="false" transferMode="Buffered" transactionProtocol="OleTransactions"
              hostNameComparisonMode
="StrongWildcard" listenBacklog="10"
              maxBufferPoolSize
="524288" maxBufferSize="2147483647" maxConnections="100"
              maxReceivedMessageSize
="2147483647">
          
<readerQuotas maxDepth="32" maxStringContentLength="524288" maxArrayLength="524288"
              maxBytesPerRead
="4096" maxNameTableCharCount="16384" />
          
<reliableSession enabled="true" />
          
<security mode="None" />
        
</binding>
      
</netTcpBinding>
</bindings>

问题分析

我认为,由于开发机经常访问服务器,所以客户端的Windows缺省保存了登陆服务器的帐号,所以服务器上发布的服务在Windows认证下是能够通过的,这就是部分客户端能访问的原因,而跟客户端是Windows XP还是Vista是没有关系的。而其它没有登陆过服务器的客户端在通过不了服务器的Windows认证情况下是无论如何都不能调用服务的接口的。

经验教训:

以后碰到分布式调用的问题,首先找服务的安全问题!

 


转载于:https://www.cnblogs.com/cubean/archive/2009/03/27/1422845.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值