代码之家  ›  专栏  ›  技术社区  ›  Ronald Wildenberg

Silverlight客户端标识不总是传递到服务器?

  •  3
  • Ronald Wildenberg  · 技术社区  · 15 年前

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

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

    2 回复  |  直到 15 年前
        1
  •  1
  •   Ronald Wildenberg    15 年前

    我在Silverlight应用程序中也经历过类似的行为。结果是这些问题之一:

    WCF bug 1

    WCF bug 2

    Blog infosupport

    在Windows 7中不会发生这种情况,但在某些Windows服务器版本中会发生这种情况。不记得是哪一个。

        2
  •  0
  •   AnthonyWJones    15 年前

    在我看来,3次标准身份验证握手(每个2 401次),然后是成功访问(200次)。如果您在快速连续地看到许多这样的情况,那么这表明到服务器的连接不会被重新用于后续的访问。我不是世界自然基金会的专家,这可能是正常的,虽然我会失望,如果这不能配置离开一些如何。