2014-10-02 2 views
0

Я написал самообслуживаемую службу WCF. Когда я запускаю сервер и клиент, клиент хорошо соединяется. Я переписал сервер как службу Windows. Теперь, когда я запускаю сервер и клиент, сервер запускается, но клиент терпит неудачу при запросе с ошибкойwcf при сбое службы Windows с ошибкой

HTTP-запрос неавторизован с помощью схемы аутентификации клиента «Negotiate». Заголовок аутентификации, полученный с сервера, был

Служба Windows зарегистрирована как LocalSystem. Сервер конфигурации: -

<system.serviceModel> 
    <services> 
     <service behaviorConfiguration="MyServiceTypeBehaviors" name="UCSService.UCSModule"> 
      <endpoint address="" binding="basicHttpBinding" contract="UCSService.IUCSModule"> 
      </endpoint> 
     <endpoint address="mex" binding="mexHttpBinding" contract="IMetadataExchange"/> 
     <host> 
      <baseAddresses> 
      <add baseAddress="http://localhost:9000/"/> 
      </baseAddresses> 
     </host> 
     </service> 
    </services> 
    <behaviors> 
     <serviceBehaviors> 
     <behavior name="MyServiceTypeBehaviors"> 
      <serviceMetadata httpGetEnabled="true"/> 
      <serviceDebug includeExceptionDetailInFaults="true"/> 
     </behavior> 
     </serviceBehaviors> 
    </behaviors> 
    <bindings> 
     <basicHttpBinding> 
      <binding name="BasicHttpEndpointBinding" closeTimeout="00:01:00" 
        openTimeout="00:01:00" receiveTimeout="00:10:00" sendTimeout="00:01:00" 
        allowCookies="false" bypassProxyOnLocal="false" hostNameComparisonMode="StrongWildcard" 
        maxBufferSize="65536" maxBufferPoolSize="524288" maxReceivedMessageSize="65536" 
        messageEncoding="Text" textEncoding="utf-8" transferMode="Buffered" 
        useDefaultWebProxy="true"> 
       <readerQuotas maxDepth="32" maxStringContentLength="8192" maxArrayLength="16384" 
        maxBytesPerRead="4096" maxNameTableCharCount="16384" /> 
       <security mode="TransportCredentialOnly"> 
        <transport clientCredentialType="Windows" proxyCredentialType="None" 
          realm="" /> 
        <message clientCredentialType="UserName" algorithmSuite="Default" /> 
       </security> 
      </binding> 
     </basicHttpBinding> 
    </bindings> 
    </system.serviceModel> 

Клиент конфигурации: -

<system.serviceModel> 
     <bindings> 
      <basicHttpBinding> 
       <binding name="BasicHttpEndpointBinding" closeTimeout="00:01:00" 
        openTimeout="00:00:30" receiveTimeout="00:10:00" sendTimeout="00:01:00" 
        allowCookies="false" bypassProxyOnLocal="false" hostNameComparisonMode="StrongWildcard" 
        maxBufferPoolSize="524288" maxBufferSize="65536" maxReceivedMessageSize="65536" 
        textEncoding="utf-8" transferMode="Buffered" useDefaultWebProxy="true" 
        messageEncoding="Text"> 
        <readerQuotas maxDepth="32" maxStringContentLength="8192" maxArrayLength="16384" 
         maxBytesPerRead="4096" maxNameTableCharCount="16384" /> 
        <security mode="TransportCredentialOnly"> 
         <transport clientCredentialType="Windows" proxyCredentialType="None" 
          realm="" /> 
         <message clientCredentialType="UserName" algorithmSuite="Default" /> 
        </security> 
       </binding> 
      </basicHttpBinding> 
     </bindings> 
     <client> 
      <endpoint address="http://192.168.101.123:9000/" binding="basicHttpBinding" 
       bindingConfiguration="BasicHttpEndpointBinding" contract="UCSModuleClient.IUCSModule" 
       name="BasicHttpBinding_UCSModule" /> 
     </client> 
    </system.serviceModel> 

Как я понимаю, основная проблема заключается в том, что сервер стал сервис, но как решить эту проблему, я не знаю. Как я могу решить эту проблему?

+0

Перейдите по этой ссылке я надеюсь, что это поможет вам http://stackoverflow.com/questions/15570108/the-http-request-is-unauthorized-with-client-authentication-scheme-negotiate http://morrisbahrami.blogspot.com/2011/02/http-request-is-unauthorized-with.html –

+0

Ну, я пробовал это (о IIS), но у меня все еще есть ошибка. – VJS

ответ

0

Вы можете использовать Google в следующем виде: https://www.google.com.bh/search?q=The+HTTP+request+is+unauthorized+with+client+authentication+scheme+%27Negotiate%27.&oq=The+HTTP+request+is+unauthorized+with+client+authentication+scheme+%27Negotiate%27.&aqs=chrome..69i57.384j0j7&sourceid=chrome&es_sm=93&ie=UTF-8

Возможное решение: Попробуйте запустить службу с пользователем Administrator

+0

У моей учетной записи есть права администратора и группа администраторов. И поиск Google, конечно, я использовал, но большинство решений о NTLM или IIS. – VJS

+1

@VJS - Ваша учетная запись может иметь права администратора, но имеет ли учетная запись * работает * у службы? – Tim

+0

Я установил, что служба запущена из учетной записи администратора и имеет ту же ошибку. Также я попробовал заполнить ClientCredentials.UserName и ClientCredentials.Windows.ClientCredential с теми же данными на стороне клиента. – VJS

Смежные вопросы