3

我有一个 Silverlight 客户端,它通过 WCF 与源自它的服务器通信时遇到了一些问题basicHttpBinding。服务配置如下:

<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)。然而,对于大多数请求,情况并非如此。就好像客户端“随机”选择何时发送身份一样。

有没有人见过这种行为并找到解决方案?

4

2 回答 2

1

我在使用 silverlight 应用程序时遇到过类似的行为。结果是这些问题之一:

WCF 错误 1

WCF 错误 2

博客信息支持

它不会在 Windows 7 中发生,但在某些 Windows Server 版本上会发生......不记得是哪个。

于 2010-01-29T15:51:14.170 回答
0

在我看来,就像 3 次标准身份验证握手(每次 2 401 次),然后是成功访问(200 次)。如果您连续快速看到其中的很多,则表明与服务器的连接没有被重新用于后续访问。我不是 wcf 专家,这可能是正常的,尽管如果不能以某种方式配置它,我会感到失望。

于 2009-12-09T16:05:47.513 回答