Статус: Активный участник
Группы: Участники
Зарегистрирован: 28.10.2008(UTC) Сообщений: 40 Откуда: Москва
|
Добрый день! Дано: Windows XP SP3, CryptoPro CSP 3.6 R2 последней версии (срок действия лицензии - неограничен), Visual Studio 2008 Pro, решение "Certif" из архива WCF.zip Sharpei SDK и 2 действующих криптопрошных сертификата. В примере Certif заменил только ссылки на сертификаты, ничего больше не менял. Скомпилировался, запустил Certif.SelfHost.exe - служба стартовала. Запустил клиента - при попытке обратиться к службе возникает исключение типа System.ServiceModel.Security. SecurityNegotiationException. Вложенное исключение - System.ServiceModel.FaultException "Запрос маркера безопасности не удалось удовлетворить из-за сбоя проверки подлинности." Цитата:Server stack trace: в System.ServiceModel.Security.IssuanceTokenProviderBase`1.DoNegotiation(TimeSpan timeout) в System.ServiceModel.Security.SspiNegotiationTokenProvider.OnOpen(TimeSpan timeout) в System.ServiceModel.Security.TlsnegoTokenProvider.OnOpen(TimeSpan timeout) в System.ServiceModel.Security.WrapperSecurityCommunicationObject.OnOpen(TimeSpan timeout) в System.ServiceModel.Channels.CommunicationObject.Open(TimeSpan timeout) в System.ServiceModel.Security.CommunicationObjectSecurityTokenProvider.Open(TimeSpan timeout) в System.ServiceModel.Security.SecurityUtils.OpenTokenProviderIfRequired(SecurityTokenProvider tokenProvider, TimeSpan timeout) в System.ServiceModel.Security.SymmetricSecurityProtocol.OnOpen(TimeSpan timeout) в System.ServiceModel.Security.WrapperSecurityCommunicationObject.OnOpen(TimeSpan timeout) в System.ServiceModel.Channels.CommunicationObject.Open(TimeSpan timeout) в System.ServiceModel.Channels.SecurityChannelFactory`1.ClientSecurityChannel`1.OnOpen(TimeSpan timeout) в System.ServiceModel.Channels.CommunicationObject.Open(TimeSpan timeout) в System.ServiceModel.Security.SecuritySessionSecurityTokenProvider.DoOperation(SecuritySessionOperation operation, EndpointAddress target, Uri via, SecurityToken currentToken, TimeSpan timeout) в System.ServiceModel.Security.SecuritySessionSecurityTokenProvider.GetTokenCore(TimeSpan timeout) в CryptoPro.Sharpei.ServiceModel.CPSecuritySessionSecurityTokenProvider.GetTokenCore(TimeSpan timeout) в System.IdentityModel.Selectors.SecurityTokenProvider.GetToken(TimeSpan timeout) в System.ServiceModel.Security.SecuritySessionClientSettings`1.ClientSecuritySessionChannel.OnOpen(TimeSpan timeout) в System.ServiceModel.Channels.CommunicationObject.Open(TimeSpan timeout) в System.ServiceModel.Channels.ServiceChannel.OnOpen(TimeSpan timeout) в System.ServiceModel.Channels.CommunicationObject.Open(TimeSpan timeout) в System.ServiceModel.Channels.ServiceChannel.CallOpenOnce.System.ServiceModel.Channels.ServiceChannel.ICallOnce.Call(ServiceChannel channel, TimeSpan timeout) в System.ServiceModel.Channels.ServiceChannel.CallOnceManager.CallOnce(TimeSpan timeout, CallOnceManager cascade) в System.ServiceModel.Channels.ServiceChannel.EnsureOpened(TimeSpan timeout) в System.ServiceModel.Channels.ServiceChannel.Call(String action, Boolean oneway, ProxyOperationRuntime operation, Object[] ins, Object[] outs, TimeSpan timeout) в System.ServiceModel.Channels.ServiceChannel.Call(String action, Boolean oneway, ProxyOperationRuntime operation, Object[] ins, Object[] outs) в System.ServiceModel.Channels.ServiceChannelProxy.InvokeService(IMethodCallMessage methodCall, ProxyOperationRuntime operation) в System.ServiceModel.Channels.ServiceChannelProxy.Invoke(IMessage message)
Exception rethrown at [0]: в System.Runtime.Remoting.Proxies.RealProxy.HandleReturnMessage(IMessage reqMsg, IMessage retMsg) в System.Runtime.Remoting.Proxies.RealProxy.PrivateInvoke(MessageData& msgData, Int32 type) в ICalculator.Add(Double n1, Double n2) в CalculatorClient.Add(Double n1, Double n2) в C:\Documents and Settings\gor_da\Рабочий стол\WCF\Certif\Client\generatedProxy.cs:строка 67 в CryptoPro.Sharpei.WCF.Samples.Client.Main() в C:\Documents and Settings\gor_da\Рабочий стол\WCF\Certif\Client\Program.cs:строка 35 в System.AppDomain._nExecuteAssembly(Assembly assembly, String[] args) в System.AppDomain.ExecuteAssembly(String assemblyFile, Evidence assemblySecurity, String[] args) в Microsoft.VisualStudio.HostingProcess.HostProc.RunUsersAssembly() в System.Threading.ThreadHelper.ThreadStart_Context(Object state) в System.Threading.ExecutionContext.Run(ExecutionContext executionContext, ContextCallback callback, Object state) в System.Threading.ThreadHelper.ThreadStart()
Далее меняю ссылки на сертификаты на 2 других сертификата, не гостовских, и убираю algorithmSuite="BasicGost" из настроек биндинга. И - вуаля - служба калькулятора успешно вызывается клиентом.Вопросы: 1. В чем может быть ошибка и как ее исправить? 2. Правильно ли я понимаю, что для режима безопасности "Message" не требуется серверная лицензия КриптоПро? Заранее спасибо за ответ!
|