“ dotnet run”命令的行为与在Visual Stuido 2017中运行的行为不同

时间:2019-01-13 15:00:31

标签: asp.net-core asp.net-core-webapi

所以,主要问题是CORS:

我在Net Core 2.1中有一个小API,还有一个Angular 7应用。当我在Visual Studio 2017中运行API时,CORS策略工作正常,但是当我使用"dotnet run"运行它时,浏览器中会出现典型的CORS错误。

我已经设置了“开发”环境:

setx ASPNETCORE_ENVIRONMENT "Development"

这是Startup.cs中的CORS配置

if (env.IsDevelopment())
        {
            app.UseDeveloperExceptionPage();
            app.UseCors(x => x
                .WithOrigins("http://localhost:4200")
                .AllowAnyOrigin()
                .AllowAnyMethod()
                .AllowAnyHeader()
                .AllowCredentials());
        }

Visual Studio 2017是否正在做我缺少的事情?

谢谢。

1 个答案:

答案 0 :(得分:0)

要在Development下指定dotnet run,请尝试在下面运行命令:

D:\xx\TestPro\TestPro\bin\Debug\netcoreapp2.2>set ASPNETCORE_ENVIRONMENT=Development

然后运行

D:\xx\TestPro\TestPro\bin\Debug\netcoreapp2.2>dotnet TestPro.dll

对于setx ASPNETCORE_ENVIRONMENT "Development",它不适用于当前正在运行的命令窗口,这意味着在第一个cmd.exe windows中运行此命令后,需要启动一个新窗口来运行{{1 }}。

参考:setx#remarks

  

Setx将变量写入注册表中的主环境。   使用setx变量设置的变量在将来的命令中可用   仅限Windows,不在当前命令窗口中。