режим безопасности basicHttpBinding не был успешно определен тестовым клиентом wcf - PullRequest
1 голос
/ 29 июля 2011

У меня есть служба WCF, запрограммированная в VB.NET, которая демонстрирует странное поведение.Файл 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 Test Client определяет конфигурацию привязки, и как мне следует исправить эту проблему?Конечным результатом является то, что в исходном коде службы WindowsIdentity не выдаёт себя за пользователя, как я ожидал.

Спасибо,

Джейсон

Ответы [ 2 ]

1 голос
/ 29 июля 2011

Я работаю с Джейсоном, и мы вместе посмотрели на это. Конфигурация службы требовала, чтобы имя и свойства контакта соответствовали полному имени класса обслуживания и полному имени интерфейса контакта. В противном случае мы получили забавные новые привязки по умолчанию для .Net 4.0 для службы по умолчанию.

0 голосов
/ 29 июля 2011

По своему опыту работы с WCF я изменил настройки времени ожидания сеанса и времени ожидания соединения в файле конфигурации, но тестовый клиент WCF не соблюдал эти параметры.Похоже, что тестовый клиент WCF просто принимает значения по умолчанию для связи со службами WCF.Поэтому я тестирую свои сервисы WCF, используя свои собственные пользовательские тестовые клиенты WCF, генерируя app.config и прокси.cs через svcutil.exe.

...