Сервис должен работать некорректно. По умолчанию при вызове, отправляемом прокси-сервером, преимущественно используется URI службы, сгенерированный в файле reference.cs.
Мы должны изменить его на практический URL-адрес службы.
https://vabqia96vm: 21011 /
Кроме того, служба связи с клиентом защищена защитой транспортного уровня. Мы должны доверять сертификату сервера перед отправкой вызова или добавить процедуру аутентификации 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();
}
Не стесняйтесь, дайте мне знать, если есть что-то, с чем я могу помочь.