Я следую примеру шлюза API на https://www.c -sharpcorner.com / article / building-api-gateway-using-ocelot-in-asp-net-core /
И я создаю пустое веб-приложение asp.net и следую инструкциям, указанным в ссылке выше.
Функция My Main () в файле Program.cs:
public static void Main(string[] args)
{
IWebHostBuilder builder = new WebHostBuilder();
builder.ConfigureServices(s =>
{
s.AddSingleton(builder);
});
builder.UseKestrel()
.UseContentRoot(Directory.GetCurrentDirectory())
.UseStartup<Startup>()
.UseUrls("http://localhost:9000");
var host = builder.Build();
host.Run();
}
Кроме того, мой файл Startup.cs имеет следующий код:
public class Startup
{
public Startup(IHostingEnvironment env)
{
var builder = new Microsoft.Extensions.Configuration.ConfigurationBuilder();
builder.SetBasePath(Environment.CurrentDirectory)
.AddJsonFile("configuration.json", optional: false, reloadOnChange: true)
.AddEnvironmentVariables();
Configuration = builder.Build();
}
public IConfigurationRoot Configuration { get; private set; }
// This method gets called by the runtime. Use this method to add services to the container.
// For more information on how to configure your application, visit https://go.microsoft.com/fwlink/?LinkID=398940
public void ConfigureServices(IServiceCollection services)
{
Action<ConfigurationBuilderCachePart> settings = (x) =>
{
x.WithMicrosoftLogging(log =>
{
log.AddConsole(LogLevel.Debug);
}).WithDictionaryHandle();
};
services.AddOcelot();
}
// This method gets called by the runtime. Use this method to configure the HTTP request pipeline.
public async void Configure(IApplicationBuilder app, IHostingEnvironment env)
{
await app.UseOcelot();
}
}
Когда я запускаю код, я получаю сообщение об ошибке для файла configuration.json NOT FOUND
.
И когда я проверяю исходный код текущего каталога в вышеприведенных функциях, я вижу, что Directory.GetCurrentDirectory()
возвращает PATH как C:\\Program Files\\IIS Express
, а не текущий каталог проекта.
У меня вопрос: почему указан путь к каталогу IIS? Как я могу это исправить?