c# - IIS 服务器上的 Web API 内的 Httpclient GetAsync 失败(503 服务不可用)

标签 c# asp.net-web-api httpclient getasync

我有一个简单的 web api,它将检索图像文件并将字节返回给调用者。当我在本地 (IIS Express) 中的 Visualstudio 中托管 api 项目时,它将起作用,但是,当我将此项目发布到我的 IIS 服务器时,它将失败。任何人有任何想法?

[RoutePrefix("api/v1/Test")]
public class TestController : ApiController
{
    [Route("GetBytesCount")]
    public async Task<int> GetBytesCount()
    {
        var client = new HttpClient() { Timeout = new TimeSpan(0, 5, 0) };
        client.DefaultRequestHeaders.Accept.Clear();
        client.DefaultRequestHeaders.Accept.Add(new MediaTypeWithQualityHeaderValue("application/json"));

        var response = await client.GetAsync(@"http://icons.wxug.com/i/c/k/clear.gif");
        response.EnsureSuccessStatusCode();
        var imageBytes = await response.Content.ReadAsByteArrayAsync();
        return imageBytes.Length;
    }

}

如果我从本地盒子调用它
http://localhost:57988/lkr/api/v1/Test/Getbytescount

它会回来
int xmlns="http://schemas.microsoft.com/2003/10/Serialization/">1689</int>

当我从我的服务器调用它时,它会返回
<Error>
<Message>An error has occurred.</Message>
<ExceptionMessage>
Response status code does not indicate success: 503 (Service Unavailable).
</ExceptionMessage>
<ExceptionType>System.Net.Http.HttpRequestException</ExceptionType>
<StackTrace>
......
</StackTrace>
</Error>

最佳答案

转到项目属性。

获取 SSL URL 并在浏览器中使用以访问资源。

enter image description here

关于c# - IIS 服务器上的 Web API 内的 Httpclient GetAsync 失败(503 服务不可用),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39725125/

相关文章:

c# - Flask 服务器 - C# 客户端 - 发布图片

android - 从 Android 应用程序读取 HTML 源代码

angular - 如何通过 Angular 5 中的 `httpclient` 删除请求传递正文

c# - 名称 'Scripts' 在 MVC 的当前上下文中不存在

c# - 为什么这个 Path.Combine 不起作用?

c# - 所有的 Web 请求都是并行执行和异步处理的吗?

jquery - 是否应该使用网络服务来创建整个网站?

c# - 仅当子元素具有特定数量的元素时才选择父元素

C# 属性初始化语法名称

c# - ASP.NET 网络 API : How to authorize for static HTML content