2012-07-04 4 views
1

나는 firstdata webservice API를 사용합니다. WCF와 함께 C# 클라이언트 호출 firstdata webservice API를 사용합니다. 아래클라이언트 인증 스키마 '익명'으로 HTTP 요청이 허가되지 않았습니다.

"System.ServiceModel.Security.MessageSecurityException: The HTTP request is unauthorized with client 

authentication scheme 'Anonymous'. The authentication header received from the server was ''. ---> System.Net.WebException: 

The remote server returned an error: (401) Unauthorized. at System.Net.HttpWebRequest.GetResponse() at System.ServiceModel.Channels.HttpChannelFactory.HttpRequestChannel.HttpChannelRequest.WaitForReply(TimeSpan timeout) --- End 

of inner exception stack trace --- Server stack trace: at 

System.ServiceModel.Channels.HttpChannelUtilities.ValidateAuthentication(HttpWebRequest request, HttpWebResponse response, 

WebException responseException, HttpChannelFactory factory) at 

System.ServiceModel.Channels.HttpChannelUtilities.ValidateRequestReplyResponse(HttpWebRequest request, HttpWebResponse response, HttpChannelFactory factory, WebException responseException, ChannelBinding channelBinding) at 

System.ServiceModel.Channels.HttpChannelFactory.HttpRequestChannel.HttpChannelRequest.WaitForReply(TimeSpan timeout) at 

System.ServiceModel.Channels.RequestChannel.Request(Message message, TimeSpan timeout) at 

System.ServiceModel.Dispatcher.RequestChannelBinder.Request(Message message, 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 

com.firstdata.globalgatewaye4.api.ServiceSoap.SendAndCommit(SendAndCommitRequest request) at 

com.firstdata.globalgatewaye4.api.ServiceSoapClient.com.firstdata.globalgatewaye4.api.ServiceSoap.SendAndCommit 

(SendAndCommitRequest request) at com.firstdata.globalgatewaye4.api.ServiceSoapClient.SendAndCommit(Transaction 

SendAndCommitSource)" 

내 Web.config의 정보는 :

<behaviors> 
     <endpointBehaviors> 
      <behavior name="FDGGBehavior"> 
       <clientCredentials> 
        <clientCertificate findValue="WS1909642825._.1" storeLocation="LocalMachine" x509FindType="FindBySubjectName" storeName="TrustedPeople" /> 
        <serviceCertificate> 
         <authentication certificateValidationMode="PeerTrust" /> 
        </serviceCertificate> 
       </clientCredentials> 
      </behavior> 
     </endpointBehaviors> 
    </behaviors> 
<binding name="ServiceSoap" 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="TransportWithMessageCredential"> 
        <transport clientCredentialType="Certificate" proxyCredentialType="Ntlm" /> 
        <message clientCredentialType="UserName" algorithmSuite="Default" /> 
       </security> 
      </binding> 
<endpoint address="https://api.globalgatewaye4.firstdata.com/transaction/v11" 
     binding="basicHttpBinding" bindingConfiguration="ServiceSoap" 
     contract="com.firstdata.globalgatewaye4.api.ServiceSoap" name="ServiceSoap" behaviorConfiguration="FDGGBehavior" /> 

어떻게 문제를 해결할 수 있습니다

그러나 오류 메시지를 표시합니다?

답변

3

같은 문제가있었습니다. 올바른지 확인하십시오 GatewayID암호. 비밀번호를 생성 한 후 업데이트 버튼을 클릭해야합니다. 또한 동작 구성을 사용하지 않습니다.

<behaviors> 
    <endpointBehaviors> 
     <behavior name="FDGGBehavior"> 
      <clientCredentials> 
       <clientCertificate findValue="WS1909642825._.1" 
        storeLocation="LocalMachine" 
        x509FindType="FindBySubjectName" 
        storeName="TrustedPeople" /> 
       <serviceCertificate> 
        <authentication certificateValidationMode="PeerTrust" /> 
       </serviceCertificate> 
      </clientCredentials> 
     </behavior> 
    </endpointBehaviors> 
</behaviors>