2009-12-09 96 views
3

我有一个Silverlight客户端,它有一些问题通过WCF basicHttpBinding与服务器通话。服务配置如下:Silverlight客户端标识不总是传递给服务器?

<system.serviceModel> 
    <bindings> 
    <basicHttpBinding> 
     <binding name="silverlightBinding"> 
     <security mode="TransportCredentialOnly"> 
      <transport clientCredentialType="Windows" /> 
     </security> 
     </binding> 
    </basicHttpBinding> 
    </bindings> 
    <services> 
    <service name="MyServices.ImportService"> 
     <endpoint address="" binding="basicHttpBinding" 
       contract="MyServices.IImportService" 
       bindingConfiguration="silverlightBinding" /> 
    </service> 
    </services> 
    <serviceHostingEnvironment aspNetCompatibilityEnabled="true"/> 
</system.serviceModel> 

服务器是配置为使用集成身份验证的IIS6 Web服务器。应用程序池标识是一个域帐户。

现在,从Silverlight客户端到Web服务器的一些调用包括客户端标识(访问客户端的域用户),有些则不是!我已经包含了IIS的一部分日志显示此:

2009-12-09 14:10:00 W3SVC1490499214 10.0.0.113 GET /ClientBin/MySLApp.xap - 80 BROWNIE\TestUser 10.0.0.216 Mozilla/4.0+(compatible;+MSIE+7.0;+Windows+NT+5.1) 304 0 0 
2009-12-09 14:12:33 W3SVC1490499214 10.0.0.113 POST /Services/ImportService.svc - 80 - 10.0.0.216 Mozilla/4.0+(compatible;+MSIE+7.0;+Windows+NT+5.1) 401 2 2148074254 
2009-12-09 14:12:33 W3SVC1490499214 10.0.0.113 POST /Services/ImportService.svc - 80 - 10.0.0.216 Mozilla/4.0+(compatible;+MSIE+7.0;+Windows+NT+5.1) 401 2 2148074254 
2009-12-09 14:12:33 W3SVC1490499214 10.0.0.113 POST /Services/ImportService.svc - 80 - 10.0.0.216 Mozilla/4.0+(compatible;+MSIE+7.0;+Windows+NT+5.1) 401 1 0 
2009-12-09 14:12:33 W3SVC1490499214 10.0.0.113 POST /Services/ImportService.svc - 80 BROWNIE\TestUser 10.0.0.216 Mozilla/4.0+(compatible;+MSIE+7.0;+Windows+NT+5.1) 200 0 0 
2009-12-09 14:12:33 W3SVC1490499214 10.0.0.113 POST /Services/ImportService.svc - 80 - 10.0.0.216 Mozilla/4.0+(compatible;+MSIE+7.0;+Windows+NT+5.1) 401 1 0 
2009-12-09 14:12:34 W3SVC1490499214 10.0.0.113 POST /Services/ImportService.svc - 80 BROWNIE\TestUser 10.0.0.216 Mozilla/4.0+(compatible;+MSIE+7.0;+Windows+NT+5.1) 200 0 0 
2009-12-09 14:12:34 W3SVC1490499214 10.0.0.113 POST /Services/ImportService.svc - 80 - 10.0.0.216 Mozilla/4.0+(compatible;+MSIE+7.0;+Windows+NT+5.1) 401 1 0 
2009-12-09 14:12:34 W3SVC1490499214 10.0.0.113 POST /Services/ImportService.svc - 80 BROWNIE\TestUser 10.0.0.216 Mozilla/4.0+(compatible;+MSIE+7.0;+Windows+NT+5.1) 200 0 0 

如果滚动有点到右侧,可以看到一些请求的身份是已知的(BROWNIE\TestUser)。然而,对于大多数请求,情况并非如此。就好像客户随机选择何时发送身份一样。

有没有人见过这种行为,并找到了解决办法?

+0

居然遇到与应用程序的工作方式有问题? – AnthonyWJones 2009-12-09 15:56:07

+0

是的,一段时间后,客户端浏览器上会显示身份验证弹出窗口。之后,客户端应用程序停止工作。 – 2009-12-09 16:45:01

回答

1

我已经经历了类似的行为与Silverlight应用程序..原来是这些问题之一:

WCF bug 1

WCF bug 2

Blog infosupport

它不会在Windows中发生7,但在一些Windows Server版本中它确实..不记得哪个。

0

在我看来,像3个标准认证握手(每个2 401)后跟一个成功的访问(200)。如果您连续快速地看到大量这些数据,则表明到服务器的连接不会被重新用于后续访问。我不是一个wcf专家,这可能是这是正常的,但如果不能配置某些方法,我会感到失望。

+0

这似乎是这种情况,但这是因为我删除了一些未经身份验证的请求来缩短帖子。实际上,大约有30个未经验证的请求,只有5个验证过。 – 2009-12-09 16:58:10

相关问题