Ray*_*ond 5 c# configuration dependency-injection azure-functions
我正在尝试删除 URL 中的“api”前缀。
这是我的 host.json。
{
"version": "2.0",
"extensions": {
"http": {
"routePrefix": ""
}
}
}
Run Code Online (Sandbox Code Playgroud)
注意:如果我更改“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);
}
}
Run Code Online (Sandbox Code Playgroud)
请注意,我已经将现有配置添加到构建器中,按照此处的文档:
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);
Run Code Online (Sandbox Code Playgroud)
我们的项目中有这行代码,因为我们将 IConfiguration 直接传递给我们的类。然而,我们实际上并不需要它,因为我们现在使用 IOptions 来传递我们键入的配置设置。
仅供参考:这些是 nuget 包
| 归档时间: |
|
| 查看次数: |
1042 次 |
| 最近记录: |