내 응용 프로그램에서 Windows 응용 프로그램과 WCF 서비스를 사용하고 있습니다. 웹 서버에 내 서비스를 게시하고 내 구성 설정에서 해당 endPointAddress를 참조했습니다. 응용 프로그램이 내 시스템과 일부 시스템에서 제대로 작동하지만 다른 시스템에 로그인 할 수 없습니다. 그리고 그것의 로그인 예외 동안 던졌습니다 ...C#에서 로그인하는 동안 예외가 발생했습니다.
여기 내가 내 예외를 언급, 어느 날이 문제의 해결책을 말할 수 있습니까? 사전에 감사합니다 ..
예외 : 'http://example.com/DashBoardPointsService/Service.svc'타겟 '과
SOAP 보안 협상 http://example.com/DashBoardPointsService/ Service.svc '실패했습니다. 자세한 내용은 내부 예외를 참조하십시오.
내부 예외 :
System.ComponentModel.Win32Exception : 보안 지원 공급자 인터페이스 (SSPI) 협상에 실패했습니다. System.ServiceModel.Security.WindowsSspiNegotiation.GetOutgoingBlob에서 (바이트 [] incomingBlob, IExtendedProtectionSupport extendedProtectionSupport) System.ServiceModel.Security.RequestSecurityToken.GetBinaryNegotiation에서 System.ServiceModel.Security.SspiNegotiationTokenProvider.GetOutgoingBlobProxy.GetOutgoingBlob (의 ChannelBinding의 ChannelBinding) 에서 () System.ServiceModel.Security.WSTrust.Driver.WriteRequestSecurityToken에서 (RequestSecurityToken 첫 번째, XmlWriter를 XmlWriter를) System.ServiceModel.Channels.BodyWriter.WriteBodyContents에서 System.ServiceModel.Security.RequestSecurityToken.WriteTo (XmlWriter를 작가) 에서 (XmlDictionaryWriter 작가) at System.ServiceModel.Channels.Message.OnWriteMessage (XmlDictionaryWriter 작성자) at System.Serv iceModel.Channels.BufferedMessageWriter.WriteMessage (메시지 메시지, BufferManager bufferManager, INT32 initialOffset, INT32 maxSizeQuota) System.ServiceModel.Channels.TextMessageEncoderFactory.TextMessageEncoder.WriteMessage에서 (메시지 메시지, INT32 maxMessageSize, BufferManager bufferManager, INT32 messageOffset) 시스템에서 . System.ServiceModel.Channels.HttpChannelFactory.HttpRequestChannel.HttpChannelRequest.SendRequest에서 System.ServiceModel.Channels.HttpOutput.Send (시간 범위 제한 시간) 에서 ServiceModel.Channels.HttpOutput.SerializeBufferedMessage (메시지 메시지) (메시지 메시지, 시간 범위 제한 시간) 에서 System.ServiceModel.Channels.RequestChannel.Request (메시지 메시지, TimeSpan 시간 초과) at System.ServiceModel.Security.IssuanceTokenProviderBase`1.DoNegotiation (TimeSpan timeout)
스택 추적 :
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);
}
}
WCF 서비스의 구성을 게시 할 수 있습니까? clientCredential 유형이란 무엇입니까? 클라이언트가 다른 도메인에 연결하지 못한 컴퓨터입니까? –
이것은 wcf의 설정이며 함수에서 사용했습니다. – Suryakavitha
나는 그것을 보지 않는다. 포맷팅을 놓쳤습니까? wsHttpBinding을 사용하려고하고 WCF 서비스 또는 클라이언트가 다른 도메인에있는 경우 작동하지 않습니다. 대신 basicHttpBinding 사용 –