繁体   English   中英

拒绝对IIS上的ASP.NET WebAPI的访问

[英]Access denied to ASP.NET WebAPI on IIS

我必须使用ASP.NET应用程序:一个是Web API,另一个是向第一个发出请求的MVC。

Everthing可以在开发中工作(使用IIS Express的VS),但是现在我将这两个应用程序都发布到了生产服务器上,而我无法使用MVC应用程序访问api。

我在API上启用了CORS:

var cors = new EnableCorsAttribute("*", "*", "*");
config.EnableCors(cors);

在MVC应用程序上,我的api基本URL设置为https:// localhost:44351 / ,然后在IIS中,我具有以下绑定(WEB Api站点):

绑定

我可以用邮递员向API发出请求,但是当我运行MVC应用程序时,我无法发出请求(同样,我可以在开发中发出请求)。

谢谢。

编辑

控制器代码示例(MVC):

        try
        {
            var client = WebApiHttpClient.GetClient();

            var response = await client.PostAsync("Token", content);
            if (response.IsSuccessStatusCode)
            {
                TokenResponse tokenResponse =
                await response.Content.ReadAsAsync<TokenResponse>();

                WebApiHttpClient.storeToken(tokenResponse);
                return RedirectToAction("Index", "Home");
            }
            else
            {
                return Content("response.StatusCode);
            }
        }
        catch
        {
            return Content("Error");
        }

我的HttpClient实现:

    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;
    }

编辑2

InnerException消息:

the underlying connection was closed could not establish trust relationship for the ssl/tls

只是为了总结评论中的讨论。 该问题是由于在IIS中为Web API应用程序使用了自签名证书。

临时解决此问题的方法是在应用程序启动类(Global.asax)中添加以下代码行:

ServicePointManager.ServerCertificateValidationCallback = ((sender, certificate, chain, sslPolicyErrors) => true);

当然,您不应在生产中使用该行代码。 在生产环境中,您应该具有有效的SSL证书。

可以在这篇文章中找到更多信息: 无法建立SSL / TLS安全通道的信任关系-SOAP

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM