我正在使用ASP.NET Core。关于Stackoverflow的问题/答案已经与使用自定义URL进行开发有关,但是我的处境似乎有所不同,因为我需要https支持和自定义基本URL。我正在通过OAuth重定向流程与第三方进行授权。第三方仅支持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"
}
}
}
}
我添加了一个主机条目,以将自定义网址映射到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显示此对话框:
我什至尝试在UseUrls()
上使用IWebHostBuilder
扩展方法:
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应用程序时,谁能阐明如何在https上使用自定义基本URL?
答案 0 :(得分:1)
已使用更新的url运行此文件,但缺少证书,这可能是接下来要查看的内容。当然,我知道这不是完整的答案,但是我认为最好提供一些帮助,因为我目前没有时间尝试通过证书问题。
尝试将.vs/config/applicationhost.config
更改为以下内容(您需要将端口更新为您正在使用的端口),因此在我的配置中查看绑定注意事项后,我在两个地方进行了更新:
<site name="WebSite1" id="1" serverAutoStart="true">
<application path="/">
<virtualDirectory path="/" physicalPath="%IIS_SITES_HOME%\WebSite1" />
</application>
<bindings>
<binding protocol="http" bindingInformation=":8080:localhost" />
<binding protocol="https" bindingInformation="*:44335:app.mysite.local" />
</bindings>
</site>
<site name="WebApplication2" id="2">
<application path="/" applicationPool="Clr4IntegratedAppPool">
<virtualDirectory path="/" physicalPath="C:\Users\benl\source\repos\WebApplication2\WebApplication2" />
</application>
<bindings>
<binding protocol="http" bindingInformation="*:63297:localhost" />
<binding protocol="https" bindingInformation="*:44335:app.mysite.local" />
</bindings>
</site>
此外,我以管理员身份运行VS。我确实遇到过IIS错误,所以我做了重启。应用程序在本地主机URL上加载,并抱怨请求错误。现在,输入您的网址https://app.mysite.local:44335/(再次更改端口),它现在正在运行:
下一部分,您将需要为IIS express排序一个新证书,因为它很可能仅是为本地主机设置的。 Link to possibly how to do this