簡體   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