gpt4 book ai didi

binding - WEB API 2 自托管主机名问题

转载 作者:行者123 更新时间:2023-12-04 10:18:10 25 4
gpt4 key购买 nike

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

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

现在,我有一个绑定(bind)到 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();
}
}
}

感谢您的帮助

最佳答案

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

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

关于binding - WEB API 2 自托管主机名问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24033084/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com