C# 拒绝在IIS上访问ASP.NET WebAPI
我必须使用ASP.NET应用程序:一个是Web API,另一个是向第一个应用程序发出请求的MVC Everthing在开发中工作(与IIS Express相比),但现在我将这两个应用程序发布到生产服务器,并且我无法使用MVC应用程序访问api 我已在API上启用CORS:C# 拒绝在IIS上访问ASP.NET WebAPI,c#,asp.net,asp.net-mvc,iis,asp.net-web-api,C#,Asp.net,Asp.net Mvc,Iis,Asp.net Web Api,我必须使用ASP.NET应用程序:一个是Web API,另一个是向第一个应用程序发出请求的MVC Everthing在开发中工作(与IIS Express相比),但现在我将这两个应用程序发布到生产服务器,并且我无法使用MVC应用程序访问api 我已在API上启用CORS: var cors = new EnableCorsAttribute("*", "*", "*"); config.EnableCors(cors); 在MVC应用程序上,我的api基本url设置为,然后在IIS中我有以下绑
var cors = new EnableCorsAttribute("*", "*", "*");
config.EnableCors(cors);
在MVC应用程序上,我的api基本url设置为,然后在IIS中我有以下绑定(WEB api站点):
我可以通过postman向API发出请求,但当我运行my MVC应用程序时,我无法发出请求(同样,我可以在开发中发出请求)
多谢各位
编辑
控制器代码示例(MVC):
编辑2
InnerException消息:
the underlying connection was closed could not establish trust relationship for the ssl/tls
只是在评论中总结一下讨论。 问题是由于在IIS for Web API应用程序中使用了自签名证书 此问题的临时解决方案是在应用程序启动类(Global.asax)中添加这行代码: 当然,您不应该在生产中使用该代码行。在生产环境中,您应该具有有效的SSL证书 更多信息可在此帖子中找到:
仅在评论中总结讨论。 问题是由于在IIS for Web API应用程序中使用了自签名证书 此问题的临时解决方案是在应用程序启动类(Global.asax)中添加这行代码: 当然,您不应该在生产中使用该代码行。在生产环境中,您应该具有有效的SSL证书 更多信息可在此帖子中找到:
你说的“不能提出请求”是什么意思?你得到了什么样的答复?你是如何提出请求的?按主机名或本地主机请参见编辑,并且您不需要启用CORS,因为您是从同一域发出请求。SSL证书存在问题。请看这篇文章:你说的“不能提出请求”是什么意思?你得到了什么样的答复?你是如何提出请求的?按主机名或本地主机请参见编辑,并且您不需要启用CORS,因为您是从同一域发出请求。SSL证书存在问题。请参阅本帖:
public const string WebApiBaseAddress = "https://localhost:44351/";
public static HttpClient GetClient()
{
HttpClient client = new HttpClient();
client.BaseAddress = new Uri(WebApiBaseAddress);
client.DefaultRequestHeaders.Accept.Clear();
client.DefaultRequestHeaders.Accept.Add(new
MediaTypeWithQualityHeaderValue("application/json"));
return client;
}
the underlying connection was closed could not establish trust relationship for the ssl/tls
ServicePointManager.ServerCertificateValidationCallback = ((sender, certificate, chain, sslPolicyErrors) => true);