我正在构建一个 ASP.NET Core Web API 项目。
服务有时运行,有时失败。
我得到了 90% 的成功结果。
(url) 上没有可以接受消息的端点侦听。这通常是由不正确的地址或 SOAP 操作引起的。有关更多详细信息,请参阅 InnerException(如果存在)。
绑定如下
我正在构建一个 ASP.NET Core Web API 项目。
服务有时运行,有时失败。
我得到了 90% 的成功结果。
(url) 上没有可以接受消息的端点侦听。这通常是由不正确的地址或 SOAP 操作引起的。有关更多详细信息,请参阅 InnerException(如果存在)。
绑定如下
该服务应该无法正常工作。默认情况下,代理发送的调用优先使用reference.cs文件中生成的服务URI。
我们应该将其更改为实际的服务 URL。
此外,服务与客户端的通信受到传输层安全性的保护。我们应该在发送调用之前信任服务器的证书,或者添加 SSL 身份验证过程以忽略验证服务器的证书。
ServiceReference1.ServiceClient client = new ServiceClient();
//ignore the SSL authentication.
client.ClientCredentials.ServiceCertificate.SslCertificateAuthentication=new System.ServiceModel.Security.X509ServiceCertificateAuthentication()
{
CertificateValidationMode = System.ServiceModel.Security.X509CertificateValidationMode.None,
RevocationMode = System.Security.Cryptography.X509Certificates.X509RevocationMode.NoCheck
};
var result = client.TestAsync();
Console.WriteLine(result.Result);
另外,我们可以使用 ChannelFactory 调用服务。
class Program
{
static void Main(string[] args)
{
Uri uri = new Uri("https://vabqia969vm:21011");
BasicHttpsBinding binding = new BasicHttpsBinding();
binding.Security.Mode = BasicHttpsSecurityMode.Transport;
binding.Security.Transport.ClientCredentialType = HttpClientCredentialType.None;
ChannelFactory<IService> factory = new ChannelFactory<IService>(binding, new EndpointAddress(uri));
factory.Credentials.ServiceCertificate.SslCertificateAuthentication=new System.ServiceModel.Security.X509ServiceCertificateAuthentication()
{
CertificateValidationMode = System.ServiceModel.Security.X509CertificateValidationMode.None,
RevocationMode = System.Security.Cryptography.X509Certificates.X509RevocationMode.NoCheck
};
var client = factory.CreateChannel();
var result = client.Test();
Console.WriteLine(result);
}
}
//the service contract is shared between the server-side and the client-side.
[ServiceContract]
public interface IService
{
[OperationContract]
string Test();
}
如果有什么我可以帮忙的,请随时告诉我。