gpt4 book ai didi

c# - 难倒自托管 Web Api 服务

转载 作者:行者123 更新时间:2023-11-30 16:20:23 24 4
gpt4 key购买 nike

请帮忙,我正在尝试自行托管网络 API。

当同一 Controller 托管在 Web 项目上并在开发上运行时,通过 F5,一切正常。

但是现在我正在尝试自行托管,我得到 411 和 404。411,当我使用 Fiddler 连接时,404 当我试图通过另一个库连接时。

这是应该托管服务的控制台应用程序:

class Program
{
static int portNumber;



static void Main(string[] args)
{
portNumber = 8089;

var config = new HttpSelfHostConfiguration(
string.Format("http://localhost:{0}", portNumber));

config.Routes.MapHttpRoute(
"API Default", "api/{controller}/{id}",
new { id = RouteParameter.Optional });

using (var server = new HttpSelfHostServer(config))
{

var test = new RetrieveGuidService().Execute(Unit.Instance);

server.OpenAsync().Wait();

Console.ReadLine();
}
}
}

这就是我的 Controller 的样子,它什么都不做,它只是一个测试。

public class RetrieveGuidServiceController : ApiController
{
public virtual Guid PostExecute(Unit request)
{
IQueryService<Unit,Guid> queryService = new RetrieveGuidService();
return queryService.Execute(request);
}
}

下面是我尝试通过 fiddler 访问它的方式:

My Fiddler Pic

当服务托管在网络项目上时,同样适用。我几乎完全按照本教程进行操作:asp.net WebApi self host tutorial其中包括运行 nugget 脚本、添加依赖项等。

我还缺少什么?

最佳答案

411 是因为您没有放置 Content-Length header 。即使您不发送内容,您也需要包含 Content-Length: 0。

关于将 Controller 置于正确的程序集中,我遇到了不一致的行为。在某些项目中,它似乎在其他项目中有效,但在其他项目中却无效。不确定我做错了什么。我有一个项目 here它使用不同程序集中的所有 Controller 同时执行 Web Host 和 Self-Host,并且工作正常。

关于c# - 难倒自托管 Web Api 服务,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14286167/

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