Web API 2自主主机主机名问题
-
21-12-2019 - |
题
我试图制作自托管的Web API服务。我遵循了一个教程,它在我当地的计算机上工作正常。
localhost / api /值与预期的json响应很好。
现在,我有一个服务器绑定到dns“myserver.mycompany.com”。当我在此服务器上启动WebAPI 2服务并尝试调用myserver.mycompany.com/api/values时,我有一个404页未找到错误。
如果我在此服务器上浏览本地,并调用localhost / api /值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();
}
}
}
.
谢谢你的帮助
解决方案
您应该更改baseaedress,以便其端点与您的主机名匹配,或者您可以使用弱宽恕的生成generacicetagcode来匹配所有可能的主机名。
这个应该有效:*
不隶属于 StackOverflow