【发布时间】:2019-03-31 21:58:27
【问题描述】:
我正在使用 ASP.NET Core。 Stackoverflow 上已经有与使用自定义 URL 进行开发相关的问题/答案,但我的情况似乎有点不同,因为我需要 https 支持和自定义基本 URL。我正在通过 OAuth 重定向流程向第 3 方授权。第 3 方仅支持 https 而非 localhost 的重定向 URL。开箱即用,Visual Studio 2017(版本 15.7.2)配置了 https 支持,这是一个惊喜。默认情况下,我的应用会在 https://localhost:44348/ 上启动。
launchSettings.json 看起来像这样:
{
"iisSettings": {
"windowsAuthentication": false,
"anonymousAuthentication": true,
"iisExpress": {
"applicationUrl": "http://localhost:53837",
"sslPort": 44348
}
},
"profiles": {
"IIS Express": {
"commandName": "IISExpress",
"launchBrowser": true,
"environmentVariables": {
"ASPNETCORE_ENVIRONMENT": "Development"
}
},
"MyProject.Web": {
"commandName": "Project",
"launchBrowser": true,
"applicationUrl": "https://localhost:5001;http://localhost:5000",
"environmentVariables": {
"ASPNETCORE_ENVIRONMENT": "Development"
}
}
}
}
我添加了一个主机条目以将自定义 url 映射到 127.0.0.1
127.0.0.1 app.mysite.local
...但我无法通过https://app.mysite.local:44348/ 访问我的网站。我收到 Bad Request - Invalid Hostname 错误。
我已尝试将 .vs/config/applicationhost.config 中的此条目更改为:
<binding protocol="https" bindingInformation="*:44348:localhost" />
到
<binding protocol="https" bindingInformation="*:44348:*" />
但是即使我以管理员身份运行 Visual Studio,我的应用程序也根本无法运行。 Visual Studio 显示此对话框:
我什至尝试过在IWebHostBuilder 上使用UseUrls() 扩展方法:
public class Program
{
public static void Main(string[] args)
{
CreateWebHostBuilder(args).Build().Run();
}
public static IWebHostBuilder CreateWebHostBuilder(string[] args) =>
WebHost.CreateDefaultBuilder(args)
.UseStartup<Startup>()
.UseUrls("https://*:44348/");
}
...但是这些技术似乎都不起作用。在开发 ASP.NET Core 应用程序时,任何人都可以了解如何获取自定义基本 URL 以在 https 上工作吗?
【问题讨论】:
-
您能否从您的启动设置中提供更多信息,我猜您那里也有个人资料。也猜测它不应该是一个问题,但你为什么不在 applicationUrl 中使用 app.mysite.local 而不是 localhost?自从您对主机文件进行更新后,您是否重新启动过。我记得这是一个潜在的问题。
-
@eVolve 我用完整的
launchSettings.json更新了我的帖子。是的,那里有个人资料。我尝试将 applicationUrl 更改为 app.mysite.local,但我收到了与上面的屏幕截图相同的Invalid URI: The hostname could not be parsed错误消息。我不认为是主机文件没有更新,因为 URL 似乎正确路由到应用程序。
标签: visual-studio asp.net-core