我有一个Web api项目,我从属性中启用了ssl并在Trusted Root Certification Authority中下载了证书。在这个项目中,我有一个将http重定向到https的类。我有一个调用我的http api的客户端使用ngrok,此请求将重定向到ssl端口。我已将启用ssl时在计算机上下载的证书粘贴到客户端计算机上的Trusted Root Certification Authority,但客户端无法访问api,说本地主机拒绝连接并显示以下错误:
System.AggregateException:发生一个或多个错误。 --->
System.Net.Http.HttpRequestException:发送请求时发生错误。 --->
System.Net.WebException:无法连接到远程服务器--->
System.Net.Sockets.SocketException:无法建立连接,因为目标计算机主动拒绝它127.0.0.1:44343
在System.Net.Sockets.Socket.InternalEndConnect(IAsyncResult asyncResult)
在System.Net.Sockets.Socket.EndConnect(IAsyncResult asyncResult)
在System.Net.ServicePoint.ConnectSocketInternal上(布尔型connectFailure,Socket s4,Socket s6,Socket&套接字,IPAddress&地址,ConnectSocketState状态,IAsyncResult asyncResult,Exception异常)
---内部异常堆栈跟踪结束---
在System.Net.HttpWebRequest.EndGetResponse(IAsyncResult asyncResult)
在System.Net.Http.HttpClientHandler.GetResponseCallback(IAsyncResult 阿拉特)
我使用以下代码调用了我的第一个api:
HttpClient client = new HttpClient();
client.BaseAddress = new Uri("http://localhost:44343/");
HttpResponseMessage response = client.GetAsync("http://ccb7fe34.ngrok.io/api/Server").Result;
if (response.StatusCode == System.Net.HttpStatusCode.OK)
{
using (HttpContent content = response.Content)
{
Task<string> result = content.ReadAsStringAsync();
res = result.Result;
System.Diagnostics.Debug.Write(res);
}
var des = (ForVersion)JsonConvert.DeserializeObject(res, typeof(ForVersion));
string updated_version = des.version;
string current_version = Assembly.GetExecutingAssembly().GetName().Version.ToString();
if (current_version != updated_version)
{
UpdateAvailable f = new UpdateAvailable();
f.ShowDialog();
}
}