WEB API 2 自托管主机名问题

Posted

技术标签:

【中文标题】WEB API 2 自托管主机名问题【英文标题】:WEB API 2 Self-hosted hostname issues 【发布时间】:2014-07-24 20:18:56 【问题描述】:

我正在尝试创建一个自托管的 Web api 服务。我遵循了一个教程,它在我的本地计算机上运行良好。

localhost/api/values 使用预期的 JSON 响应良好。

现在,我有一个绑定到 DNS“myserver.mycompany.com”的服务器。当我在此服务器上启动我的 WebApi 2 服务并尝试调用 myserver.mycompany.com/api/values 时,出现 404 page not found 错误。

如果我在此服务器上本地浏览并调用 localhost/api/values url,它可以正常工作。

这是 Startup 类的代码:

using Owin;
using System.Web.Http;

namespace SelfHostedWebApi2

public class Startup

    // This code configures Web API. The Startup class is specified as a type
    // parameter in the WebApp.Start method.
    public void Configuration(IAppBuilder appBuilder)
    
        // Configure Web API for self-host. 
        HttpConfiguration config = new HttpConfiguration();
        config.Routes.MapHttpRoute(
            name: "DefaultApi",
            routeTemplate: "api/controller/id",
            defaults: new  id = RouteParameter.Optional 
        );

        appBuilder.UseWebApi(config);
    


这是我启动服务器的方式:

using Microsoft.Owin.Hosting;
using System;
using System.Net.Http;

namespace SelfHostedWebApi2 
 
public class Program 
 
    static void Main() 
     
        string baseAddress = "http://localhost:80/"; 

        // Start OWIN host 
        try
        
            WebApp.Start<Startup>(new StartOptions(url: baseAddress));

            HttpClient client = new HttpClient();

            var response = client.GetAsync(baseAddress + "api/values").Result;

            Console.WriteLine(response);
            Console.WriteLine(response.Content.ReadAsStringAsync().Result); 

        
        catch (Exception ee)
        

            Console.WriteLine("Erreur : " + ee.ToString());
        

        Console.ReadLine(); 
     
 
 

感谢您的帮助

【问题讨论】:

【参考方案1】:

您应该更改您的 baseAddress 以使其端点与您的主机名匹配,或者您可以使用 Wea​​kWildcard * 来匹配所有可能的主机名。

这个应该可以:string baseAddress = "http://*:80/";

【讨论】:

以上是关于WEB API 2 自托管主机名问题的主要内容,如果未能解决你的问题,请参考以下文章

具有 OWIN 自主机和 Windows 身份验证的 Web Api

如何以不同的主机名在本地托管资产?

十八章主机托管

前端学HTTP之Web主机托管

前端学HTTP之Web主机托管

Web 主机托管