wcf测试客户端无法成功推断basicHttpBinding安全模式

时间:2011-07-29 14:37:46

标签: wcf basichttpbinding wcftestclient

我在VB.NET中编写了一个WCF服务,表现出奇怪的行为。 web.config具有以下xml:

<system.serviceModel>
  <services>
    <service behaviorConfiguration="CentricBasicHttpBehavior" name="OnbaseService">
      <endpoint binding="basicHttpBinding" bindingConfiguration="CentRicBasicHttpServerBinding" contract="IOnbaseService">
        <identity>
          <servicePrincipalName value="HTTP/JFOLKENDT7E" />
        </identity>
      </endpoint>
      <endpoint address="mex" binding="mexHttpBinding" contract="IMetadataExchange" />
    </service>
  </services>
  <behaviors>
    <serviceBehaviors>
      <behavior name="CentricBasicHttpBehavior">
        <serviceAuthorization impersonateCallerForAllOperations="true" />
        <serviceMetadata httpGetEnabled="true" />
        <serviceDebug includeExceptionDetailInFaults="true" />
        <dataContractSerializer maxItemsInObjectGraph="2147483646" />
        <serviceThrottling maxConcurrentCalls="100" maxConcurrentSessions="100" maxConcurrentInstances="100" />
      </behavior>
      <behavior name="">
        <serviceMetadata httpGetEnabled="true" />
        <serviceDebug includeExceptionDetailInFaults="true" />
      </behavior>
    </serviceBehaviors>
  </behaviors>
  <serviceHostingEnvironment aspNetCompatibilityEnabled="true" multipleSiteBindingsEnabled="true" />
  <bindings>
    <basicHttpBinding>
      <binding name="CentRicBasicHttpServerBinding" maxReceivedMessageSize="5000000">
        <security mode="TransportCredentialOnly">
          <transport clientCredentialType="Windows" />
        </security>
      </binding>
    </basicHttpBinding>
  </bindings>
</system.serviceModel>

当我在wcf测试客户端中配置服务时,绑定模式和TransportClientCredentialType都会以“无”形式出现。我希望他们分别是“TransportCredentialOnly”和“Windows”。

有人可以与我分享WCF测试客户端如何推断绑定配置,以及我应该如何纠正这个问题?最终的结果是,在服务的源代码中,WindowsIdentity并没有像我期望的那样冒充用户。

谢谢,

杰森

2 个答案:

答案 0 :(得分:1)

我和杰森合作,我们一起看了这个。服务配置需要名称和联系人属性以匹配完全限定的服务类名称和完全限定的联系人接口名称。否则,我们为默认服务获得了有趣的新.Net 4.0 defualt绑定。

答案 1 :(得分:0)

根据我自己的WCF经验,我在配置文件中修改了会话超时和连接超时设置,但WCF测试客户端不尊重这些设置。好像WCF测试客户端只占用与WCF服务通信的默认值。因此,我通过生成app.config和proxy来使用我自己的自定义WCF测试客户端测试我的WCF服务。 cs通过svcutil.exe。