https 接続を介して公開された Web サービスを使用する必要があります。このサービスは、証明書 (.pfx) とパスワードを提供したクライアントによって管理されているため、このサービスで操作を呼び出す必要がありますが、試してみると問題が発生します。それ。
クライアントとサービス間の SSL 接続を適切に作成していない可能性があります。web.config と、サービスを呼び出すコードの一部を示します。
web.config
:
<configuration>
<system.serviceModel>
<behaviors>
<endpointBehaviors>
<behavior name="credentialConfiguration">
<clientCredentials>
<clientCertificate
findValue="10 14 08 f4 00 00 00 00 0f 3f"
storeLocation="CurrentUser"
x509FindType="FindBySerialNumber"/>
</clientCredentials>
</behavior>
</endpointBehaviors>
</behaviors>
<bindings>
<wsHttpBinding>
<binding name="myBinding">
<security mode="Transport">
<transport clientCredentialType="Certificate" />
</security>
</binding>
</wsHttpBinding>
</bindings>
<client>
<endpoint address="https://aaaaaaaaaaaaaaaaaa:700/aaa/aa/"
behaviorConfiguration="credentialConfiguration"
binding="wsHttpBinding"
bindingConfiguration="myBinding"
contract="mydll.service"
name="faturasSOAP" />
</client>
</system.serviceModel>
</configuration>
サービスを呼び出すコード:
//Create authentication header
CdoHeaderCredentials header = GetEncryptedCredentials();
//Client Proxy
InvoiceService.faturasClient clientProxy = new faturasClient();
//Custom header
AddWseSecurityHeaderEndpointBehavior customEndpointBehavior =
new AddWseSecurityHeaderEndpointBehavior(header.Username, header.Password, header.Nonce, header.ClientDate);
clientProxy.Endpoint.Behaviors.Add(customEndpointBehavior);
//get document to register on service
RegisterInvoiceType documentToSnyc = manager.DocumentToSnyc();
//Load private certificate with key
X509Certificate2 cert = new X509Certificate2(
certPath,
_certKey,
X509KeyStorageFlags.Exportable);
//Link the certificate with the proxy
clientProxy.ClientCredentials.ClientCertificate.Certificate = cert;
//invoke operation
RegisterInvoiceResponse response = clientProxy.RegisterInvoice(new RegisterInvoiceRequest(documentToSnyc));
サービスを呼び出すたびに、応答は同じです:
<env:Envelope xmlns:env="http://www.w3.org/2003/05/soap-envelope">
<s:Header xmlns:s="http://www.w3.org/2003/05/soap-envelope" />
<env:Body>
<env:Fault>
<env:Code>
<env:Value>
env:Receiver</env:Value>
</env:Code>
<env:Reason>
<env:Text xml:lang="en-US">
Internal Error (from server)
</env:Text>
</env:Reason>
</env:Fault>
</env:Body>
</env:Envelope>
私の質問は、このエラーがクライアント認証スロー ssl に関するものなのか、それとも何か他のものなのかということです。
前もって感謝します