.net core 为什么.NETCore在Mac上不断重定向?
我正试图在Mac上建立一个.NET核心项目;它在Windows上运行良好,但在Mac上无法运行.net core 为什么.NETCore在Mac上不断重定向?,.net-core,.net Core,我正试图在Mac上建立一个.NET核心项目;它在Windows上运行良好,但在Mac上无法运行 dotnet运行后,所有内容都正确构建,并在终端中显示此消息: [09:46:04 INF] Now listening on: http://localhost:44382 但是,当我输入这个地址时,它只返回302并将我重定向到https://localhost/。当然,那里什么都不存在 这是我的启动设置。json: { "iisSettings": { "
dotnet运行后,所有内容都正确构建,并在终端中显示此消息:
[09:46:04 INF] Now listening on: http://localhost:44382
但是,当我输入这个地址时,它只返回302并将我重定向到https://localhost/
。当然,那里什么都不存在
这是我的启动设置。json
:
{
"iisSettings": {
"windowsAuthentication": true,
"anonymousAuthentication": true,
"iis": {
"applicationUrl": "http://localhost/OW.WebApplication.Web",
"sslPort": 0
},
"iisExpress": {
"applicationUrl": "https://localhost:44365/",
"sslPort": 44365
}
},
"profiles": {
"IIS Express": {
"commandName": "IISExpress",
"launchBrowser": true,
"launchUrl": "https://localhost:44365/",
"environmentVariables": {
"OW_LOCAL_DEV": "true",
"ASPNETCORE_ENVIRONMENT": "development",
"OW_KEYVAULT": "https://ffffff-development.vault.azure.net/",
"OW_E2E_TEST_TOKEN": "BcAdl0ffffffffff3LOERQ69Y"
}
},
"OW.WebApplication.Web": {
"commandName": "Project",
"launchBrowser": true,
"environmentVariables": {
"OW_LOCAL_DEV": "true",
"ASPNETCORE_ENVIRONMENT": "development",
"OW_KEYVAULT": "https://ffffff-development.vault.azure.net/"
},
"applicationUrl": "http://localhost:44382/"
}
}
}
我猜这个配置有问题,但我就是想不出来。任何提示都会很有帮助
编辑:
这是我的web.config文件:
<?xml version="1.0" encoding="utf-8"?>
<configuration>
<system.serviceModel>
</system.serviceModel>
<system.webServer>
<!--<rewrite>
<rules>
<rule name="GeoServer" stopProcessing="true">
<match url="^geoserver(.*)" />
<conditions>
<add input="{CACHE_URL}" pattern="^(https?)://" />
</conditions>
<action type="Redirect" url="{C:1}://geoserver.azurewebsites.net/geoserver{R:1}" />
</rule>
</rules>
</rewrite>-->
</system.webServer>
<system.net>
<settings>
<servicePointManager checkCertificateName="false" checkCertificateRevocationList="false" />
</settings>
</system.net>
</configuration>
我已使用以下代码更新了Startup.cs文件:
services
.AddHttpsRedirection(options => {
options.RedirectStatusCode = StatusCodes.Status307TemporaryRedirect;
options.HttpsPort = 44365;
});
现在我甚至无法启动该应用程序。很可能是您在Startup.cs
文件中启用了中间件从HTTP重定向到HTTPS。检查您是否正在使用UseHttpsRedirection
中间件,如下所示:
public void Configure(IApplicationBuilder app, IWebHostEnvironment env)
{
app.UseHttpsRedirection();
app.UseStaticFiles();
app.UseRouting();
app.UseEndpoints(endpoints =>
{
endpoints.MapRazorPages();
});
}
您也可能正在使用OW.WebApplication.Web
(Kestrel)而不是IIS Express启动应用程序。IIS Express能够使用HTTPS,而Kestrel需要设置证书,否则您将收到浏览器安全警告。请注意,iisexpress在Mac上不起作用,因此您可能会使用Kestrel。这是Windows上Visual Studio上的下拉列表:
如果您需要从HTTP重定向到HTTPS。查看此文档,了解如何配置HTTPS端口,以便在开发中运行不使用标准端口80和443的应用程序。在Windows上运行时,是否使用IIS Express?@Dai是的,据我所知,无法在Mac上使用IIS Express。如果将项目更改为使用OW.WebApplication.Web
配置文件而不是在Windows上使用IIS Express,会发生什么情况?您是否有有效的web.config
和/或任何IIS URL重写规则?@Dai使用OW.WebApplication.web
配置文件在Windows上也会发生同样的情况。我有web.config
,我已经更新了问题,请查看。我还添加了日志,可能会有帮助。嘿@Dai,你有什么想法吗?@Muhamamad Rehan Saeed谢谢你的帮助。有app.UseHttpsRedirection();在代码中。我已经用更新的Startup.cs文件更新了我的问题;现在我无法运行该应用程序。我应该如何配置端口,而不是那样?除此之外,我还应该做些别的事情吗?
public void Configure(IApplicationBuilder app, IWebHostEnvironment env)
{
app.UseHttpsRedirection();
app.UseStaticFiles();
app.UseRouting();
app.UseEndpoints(endpoints =>
{
endpoints.MapRazorPages();
});
}