Исключение происходит при входе в C # - PullRequest
1 голос
/ 25 января 2011

Я использую приложение Windows и службу WCF в своем приложении.Я опубликовал свой сервис на веб-сервере, а также упомянул этот endPointAddress в настройках конфигурации.Приложение работает нормально в моей системе и некоторых системах, но оно не может быть зарегистрировано в другой системе.И это вызывает исключение при входе в систему ...

Здесь я упомянул мое исключение, может кто-нибудь сказать мне решение этой проблемы?Заранее спасибо.

Исключение:

Не удалось согласование безопасности SOAP с 'http://example.com/DashBoardPointsService/Service.svc' для цели' http://example.com/DashBoardPointsService/Service.svc'.Дополнительные подробности см. Во внутреннем исключении.

Внутреннее исключение:

System.ComponentModel.Win32Exception: сбой согласования интерфейса поставщика поддержки безопасности (SSPI).в System.ServiceModel.Security.WindowsSspiNegotiation.GetOutgoingBlob (Byte [] incomingBlob, IExtendedProtectionSupport extendedProtectionSupport) в System.ServiceModel.Security.SspiNegotiationTokenProvider.GetOutgoingBlobProxy.GetOutgoingBlob (ChannelBinding channelBinding) в System.ServiceModel.Security.RequestSecurityToken.GetBinaryNegotiation () в системе.ServiceModel.Security.WSTrust.Driver.WriteRequestSecurityToken (RequestSecurityToken rst, XmlWriter xmlWriter) в System.ServiceModel.Security.RequestSecurityToken.WriteTo (писатель XmlWriter)«ize, BufferManager bufferManager, Int32 messageOffset) в System.ServiceModel.Channels.HttpOutput.SerializeBufferedMessage (сообщение-сообщение) в System.ServiceModel.Channels.HttpOutput.Send (TimeSpan timeout )estestHhannelHhanRehan.DhanChanRehan.DhanChanRehan.DhanChanRehan.exe(Сообщение, время ожидания TimeSpan) в System.ServiceModel.Channels.RequestChannel.Request (сообщение, время ожидания TimeSpan) в System.ServiceModel.Security.IssuanceTokenProviderBase`1.DoNegotiation (время ожидания TimeSpan)

* 1018Трассировка:
   at System.ServiceModel.Security.IssuanceTokenProviderBase`1.DoNegotiation(TimeSpan timeout)
   at System.ServiceModel.Security.SspiNegotiationTokenProvider.OnOpen(TimeSpan timeout)
   at System.ServiceModel.Security.WrapperSecurityCommunicationObject.OnOpen(TimeSpan timeout)
   at System.ServiceModel.Channels.CommunicationObject.Open(TimeSpan timeout)
   at System.ServiceModel.Security.SecurityUtils.OpenCommunicationObject(ICommunicationObject obj, TimeSpan timeout)
   at System.ServiceModel.Security.SymmetricSecurityProtocol.OnOpen(TimeSpan timeout)
   at System.ServiceModel.Security.WrapperSecurityCommunicationObject.OnOpen(TimeSpan timeout)
   at System.ServiceModel.Channels.CommunicationObject.Open(TimeSpan timeout)
   at System.ServiceModel.Channels.SecurityChannelFactory`1.ClientSecurityChannel`1.OnOpen(TimeSpan timeout)
   at System.ServiceModel.Channels.CommunicationObject.Open(TimeSpan timeout)
   at System.ServiceModel.Security.SecuritySessionSecurityTokenProvider.DoOperation(SecuritySessionOperation operation, EndpointAddress target, Uri via, SecurityToken currentToken, TimeSpan timeout)
   at System.ServiceModel.Security.SecuritySessionSecurityTokenProvider.GetTokenCore(TimeSpan timeout)
   at System.IdentityModel.Selectors.SecurityTokenProvider.GetToken(TimeSpan timeout)
   at System.ServiceModel.Security.SecuritySessionClientSettings`1.ClientSecuritySessionChannel.OnOpen(TimeSpan timeout)
   at System.ServiceModel.Channels.CommunicationObject.Open(TimeSpan timeout)
   at System.ServiceModel.Channels.ServiceChannel.OnOpen(TimeSpan timeout)
   at System.ServiceModel.Channels.CommunicationObject.Open(TimeSpan timeout)
   at System.ServiceModel.Channels.ServiceChannel.CallOnceManager.CallOnce(TimeSpan timeout, CallOnceManager cascade)
   at System.ServiceModel.Channels.ServiceChannel.EnsureOpened(TimeSpan timeout)
   at System.ServiceModel.Channels.ServiceChannel.Call(String action, Boolean oneway, ProxyOperationRuntime operation, Object[] ins, Object[] outs, TimeSpan timeout)
   at System.ServiceModel.Channels.ServiceChannelProxy.InvokeService(IMethodCallMessage methodCall, ProxyOperationRuntime operation)
   at System.ServiceModel.Channels.ServiceChannelProxy.Invoke(IMessage message)

Exception rethrown at [0]: 
   at System.Runtime.Remoting.Proxies.RealProxy.HandleReturnMessage(IMessage reqMsg, IMessage retMsg)
   at System.Runtime.Remoting.Proxies.RealProxy.PrivateInvoke(MessageData& msgData, Int32 type)
   at IService.GetLoginDetails(String strUserName, String strPassword)
   at ExportReportsandPointsDetails.frmLogin.btnSubmit_Click(Object sender, EventArgs e)

Источник:

Это мои настройки конфигурации службы WCF:

public void CreateConnection()
{
    try
    {
        string strNewURL = "http://example.com/DashBoardPointsService/Service.svc";
        EndpointAddress ep = new EndpointAddress(strNewURL);                

        WSHttpBinding binding = new WSHttpBinding();
        binding.Security.Mode = SecurityMode.Message;

        binding.MaxBufferPoolSize = 819222;
        binding.MaxReceivedMessageSize = 819222;
        binding.ReceiveTimeout = TimeSpan.MaxValue;
        binding.SendTimeout = TimeSpan.MaxValue;
        binding.OpenTimeout = TimeSpan.MaxValue;
        binding.CloseTimeout = TimeSpan.MaxValue;
        binding.MaxReceivedMessageSize = 99999999;
        binding.MaxBufferPoolSize = 99999999;
        binding.ReaderQuotas.MaxArrayLength = 714748;
        binding.ReaderQuotas.MaxBytesPerRead = 214748;
        binding.ReaderQuotas.MaxDepth = 2147483647;
        binding.ReaderQuotas.MaxNameTableCharCount = 214749;
        binding.ReaderQuotas.MaxStringContentLength = 214749;

        objConnectionManager = new ChannelFactory<IService>(binding, ep);                
        objActivatedConnectionManager = objConnectionManager.CreateChannel();                

    }
    catch (Exception ex)
    {
        objlog.Write(ex);
    }
}

1 Ответ

0 голосов
/ 25 января 2011

Возможно, это проблема с правами.

У клиента есть контекст безопасности, который блокируется сервером.

Проверка личности клиента и разрешений на сервере.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...