enter code here
Привет всем,
У меня есть простое приложение службы Windows, которое подключается к службе WCF. Служба Windows развернута на нашем сервере приложений для разработки, а служба WCF - на нашем веб-сервере DEV. Служба настроена для работы под соответствующей учетной записью службы (у нас есть несколько других служб, которые также взаимодействуют со службами WCF, расположенными на тех же серверах, работающих под той же учетной записью).
Моя проблема заключается в том, что, когда служба пытается подключиться к службе WCF, она выдает следующее сообщение об ошибке (блестящее из журналов трассировки службы):
SecurityContextSecurityToken с context-id = urn: uuid: a02a1879-3297-4dee-8035-68eb30ed4195 (идентификатор генерации ключа =) не зарегистрирован.
Служба работает нормально при запуске с моего локального компьютера (затем я запускаю службу, используя свою учетную запись домена), и да, служба работала нормально вчера после ее развертывания. Но с сегодняшнего дня это неожиданно не происходит :(
Конфигурация службы WCF настроена следующим образом:
<system.serviceModel>
<diagnostics>
<messageLogging logMalformedMessages="true" logMessagesAtTransportLevel="true" />
</diagnostics>
<services>
<service name="Calm.Leads.ImportService.LeadImportService"
behaviorConfiguration="Calm.Leads.ImportService.LeadImportService">
<!-- Service Endpoints -->
<endpoint address="" binding="wsHttpBinding" contract="Calm.Leads.ImportService.ILeadImportService">
<!--
Upon deployment, the following identity element should be removed or replaced to reflect the
identity under which the deployed service runs. If removed, WCF will infer an appropriate identity
automatically.
-->
<identity>
<dns value="localhost"/>
</identity>
</endpoint>
<endpoint address="mex" binding="mexHttpBinding" contract="IMetadataExchange"/>
</service>
</services>
<behaviors>
<serviceBehaviors>
<behavior name="Calm.Leads.ImportService.LeadImportService">
<!-- To avoid disclosing metadata information, set the value below to false and remove the metadata endpoint above before deployment -->
<serviceMetadata httpGetEnabled="true"/>
<!-- To receive exception details in faults for debugging purposes, set the value below to true. Set to false before deployment to avoid disclosing exception information -->
<serviceDebug includeExceptionDetailInFaults="false"/>
</behavior>
</serviceBehaviors>
</behaviors>
Конфигурация на стороне клиента выглядит следующим образом:
<system.serviceModel>
<bindings>
<wsHttpBinding>
<binding name="WSHttpBinding_ILeadImportService" closeTimeout="00:01:00" openTimeout="00:01:00"
receiveTimeout="00:10:00" sendTimeout="00:01:00" bypassProxyOnLocal="false" transactionFlow="false"
hostNameComparisonMode="StrongWildcard" maxBufferPoolSize="524288" maxReceivedMessageSize="65536"
messageEncoding="Text" textEncoding="utf-8" useDefaultWebProxy="true" allowCookies="false">
<readerQuotas maxDepth="32" maxStringContentLength="8192" maxArrayLength="16384"
maxBytesPerRead="4096" maxNameTableCharCount="16384" />
<reliableSession ordered="true" inactivityTimeout="00:10:00" enabled="false" />
<security mode="Message">
<transport clientCredentialType="Windows" proxyCredentialType="None" realm="" />
<message clientCredentialType="Windows" negotiateServiceCredential="true"
algorithmSuite="Default" establishSecurityContext="true" />
</security>
</binding>
</wsHttpBinding>
</bindings>
<client>
<endpoint address="http://calm.intranet.dev/LeadsImportService/LeadImportService.svc"
binding="wsHttpBinding" bindingConfiguration="WSHttpBinding_ILeadImportService"
contract="LeadImportService.ILeadImportService" name="WSHttpBinding_ILeadImportService">
<identity>
<dns value="localhost" />
</identity>
</endpoint>
</client>
И, наконец, след исключения выглядит следующим образом:
SecurityContextSecurityToken с context-id = urn: uuid: a02a1879-3297-4dee-8035-68eb30ed4195 (идентификатор генерации ключа =) не зарегистрирован.
в System.ServiceModel.Security.WSSecureConversation.SecurityContextTokenEntry.ReadTokenCore (читатель XmlDictionaryReader,
SecurityTokenResolver tokenResolver)
в System.ServiceModel.Security.WSSecurityTokenSerializer.ReadTokenCore (читатель XmlReader, SecurityTokenResolver tokenResolver)
в System.IdentityModel.Selectors.SecurityTokenSerializer.ReadToken (читатель XmlReader, SecurityTokenResolver tokenResolver)
at System.ServiceModel.Security.ReceiveSecurityHeader.ReadToken (читатель XmlReader, SecurityTokenResolver tokenResolver, IList 1
allowedTokenAuthenticators, SecurityTokenAuthenticator&amp; usedTokenAuthenticator)
at System.ServiceModel.Security.ReceiveSecurityHeader.ReadToken(XmlDictionaryReader reader, Int32 position, Byte[] decryptedBuffer,
SecurityToken encryptionToken, String idInEncryptedForm, TimeSpan timeout)
at System.ServiceModel.Security.ReceiveSecurityHeader.ExecuteFullPass(XmlDictionaryReader reader)
at System.ServiceModel.Security.StrictModeSecurityHeaderElementInferenceEngine.ExecuteProcessingPasses(ReceiveSecurityHeader securityHeader,
XmlDictionaryReader reader)
at System.ServiceModel.Security.ReceiveSecurityHeader.Process(TimeSpan timeout)
at System.ServiceModel.Security.MessageSecurityProtocol.ProcessSecurityHeader(ReceiveSecurityHeader securityHeader, Message&amp; message,
SecurityToken requiredSigningToken, TimeSpan timeout, SecurityProtocolCorrelationState[] correlationStates)
at System.ServiceModel.Security.SymmetricSecurityProtocol.VerifyIncomingMessageCore(Message&amp; message, String actor, TimeSpan timeout,
SecurityProtocolCorrelationState[] correlationStates)
at System.ServiceModel.Security.MessageSecurityProtocol.VerifyIncomingMessage(Message&amp; message, TimeSpan timeout,
SecurityProtocolCorrelationState[] correlationStates)
at System.ServiceModel.Channels.SecurityChannelListener
1.ServerSecurityChannel 1.VerifyIncomingMessage(Message&amp; message, TimeSpan
timeout, SecurityProtocolCorrelationState[] correlationState)
at System.ServiceModel.Channels.SecurityChannelListener
1.SecurityReplyChannel.ProcessReceivedRequest (RequestConxtTimeSpectetete
тайм-аут)
at System.ServiceModel.Channels.SecurityChannelListener 1.ReceiveRequestAndVerifySecurityAsyncResult.ProcessInnerItem(RequestContext
innerItem, TimeSpan timeout)
at System.ServiceModel.Channels.SecurityChannelListener
1.ReceiveItemAndVerifySecurityAsyncResult 2.OnInnerReceiveDone()
at
System.ServiceModel.Channels.SecurityChannelListener
1.ReceiveItemAndVerifySecurityAsyncResult 2.InnerTryReceiveCompletedCallback(IAsyncResult
result)
at System.ServiceModel.Diagnostics.Utility.AsyncThunk.UnhandledExceptionFrame(IAsyncResult result)
at System.ServiceModel.AsyncResult.Complete(Boolean completedSynchronously)
at System.ServiceModel.Channels.InputQueue
1.AsyncQueueReader.Set (элемент элемента)
в System.ServiceModel.Channels.InputQueue 1.Dispatch()
at System.ServiceModel.Channels.InputQueue
1.OnDispatchCallback (состояние объекта)
в System.ServiceModel.Channels.IOThreadScheduler.CriticalHelper.WorkItem.Invoke2 ()
в System.ServiceModel.Channels.IOThreadScheduler.CriticalHelper.WorkItem.OnSecurityContextCallback (Object o)
в System.Security.SecurityContext.Run (SecurityContext securityContext, обратный вызов ContextCallback, состояние объекта)
в System.ServiceModel.Channels.IOThreadScheduler.CriticalHelper.WorkItem.Invoke ()
в System.ServiceModel.Channels.IOThreadScheduler.CriticalHelper.ProcessCallbacks ()
в System.ServiceModel.Channels.IOThreadScheduler.CriticalHelper.CompletionCallback (состояние объекта)
в System.ServiceModel.Channels.IOThreadScheduler.CriticalHelper.ScheduledOverlapped.IOCallback (код ошибки UInt32, код UInt32 numBytes,
NativeOverlapped * nativeOverlapped)
в System.ServiceModel.Diagnostics.Utility.IOCompletionThunk.UnhandledExceptionFrame (ошибка UInt32, UInt32 bytesRead, NativeOverlapped *
NativeOverlapped)
в System.Threading._IOCompletionCallback.PerformIOCompletionCallback (код ошибки UInt32, numBytes UInt32, NativeOverlapped * pOVERLAP)
И веб-серверы, и серверы приложений являются компьютерами под управлением Windows Server 2003 с пакетом обновления 1 (SP1), а веб-сервер работает под управлением IIS 6.
У кого-нибудь была похожая проблема? Кто-нибудь знает, что может быть причиной?