gpt4 book ai didi

c# - 如何从路由中删除 "api"- Azure Functions v3 - host.json routePrefix 空字符串不起作用

转载 作者:行者123 更新时间:2023-12-04 13:56:12 26 4
gpt4 key购买 nike

我正在尝试删除 URL 中的“api”前缀。

这是我的host.json。

{
"version": "2.0",
"extensions": {
"http": {
"routePrefix": ""
}
}
}

注意:如果我更改“routePrefix”:“foo”,它会起作用。
似乎是 string.empty 导致了问题。

这是我的 startup.cs 代码:
public class Startup : FunctionsStartup
{
public override void Configure(IFunctionsHostBuilder builder)
{

var serviceProvider = builder.Services.BuildServiceProvider();
var existingConfig = serviceProvider.GetService<IConfiguration>();

var config = new ConfigurationBuilder()
.AddEnvironmentVariables()
.AddConfiguration(existingConfig)
.Build();

builder.Services.AddSingleton<IConfiguration>(configRoot);
services.BuildServiceProvider(true);

}
}

请注意,根据此处的文档,我已经将现有配置添加到构建器中:

https://github.com/Azure/azure-functions-host/issues/4363

https://github.com/Azure/azure-functions-durable-extension/issues/894

而这个问题,其他人也报告了和我一样的问题。但是票已经关闭了...

https://github.com/Azure/azure-functions-host/issues/5466

我还缺少什么或做错了什么?

旁白:如果我注释掉这一行,那么带有 api 的 URL 也有效。
builder.Services.AddSingleton(configRoot);

最佳答案

我的问题是这一行:

builder.Services.AddSingleton<IConfiguration>(configRoot);

我们的项目中有这行代码,因为我们将 IConfiguration 直接传递给我们的类。然而,我们实际上并不需要它,因为我们现在使用 IOptions 来传递我们的类型化配置设置。

仅供引用:这些是 nuget 包

enter image description here

关于c# - 如何从路由中删除 "api"- Azure Functions v3 - host.json routePrefix 空字符串不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/62011829/

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