我有几个申请。一个是angular cli客户端应用程序。另一个是aspnetcore webapi应用程序,它向我的角度客户机提供数据。我已将两者设置为子应用程序(即使用现有网站的“添加应用程序”功能托管在IIS子文件夹中)。
角度应用程序的配置是用一对夫妇的标志构建,允许应用程序从子文件夹中工作。
ng build --deploy-url=/mock-v1/ --base-href=/mock-v1/
使用这些标志生成后,应用程序在客户端子应用程序下运行良好。
http://app/mock-v1/
下一步,我构建了aspnetcore应用程序,启动文件配置如下。
// ConfigureServices
services.AddCors(c => c.AddPolicy("CorsPolicy",
builder => builder.AllowAnyOrigin()
.AllowAnyMethod()
.AllowAnyHeader()));
// Configure
app.UseStaticFiles("/data");
app.UsePathBase("/data");
在IIS中构建和部署之后,我可以成功地访问我的测试页面,下面的示例输出显示“[ Value1”、“Value2”]:
http://app/data/api/values
接下来,我为本地域设置一个自托管的ssl证书,如hosts文件中设置的那样:
PS C:\> New-SelfSignedCertificate -DnsName app, data -CertStoreLocation
"cert:\LocalMachine\My"
以下是局部结果:
http://app/mock-v1/ // works
http://app/data/api/values // works
https://app/mock-v1/ // doesn't work
https://app/data/api/values // doesn't work
在已成功为根域设置SSL的服务器上:
http://[domain].com/mock-v1/ // works
http://[domain].com/data/api/values // doesn't work
https://[domain].com/mock-v1/ // works
https://[domain].com/data/api/values // doesn't work
实际上,我不知道data/api/values的非ssl版本是否有效,因为它一直在重定向到https,页面上没有显示任何内容。
如果我将应用程序设置为以下主机的根网站,则所有网站都可以工作。
app 127.0.0.1
data 127.0.0.1
http://app/ // works
http://data/api/values // works
https://app/ // works
https://data/api/values // works
我的最终目标是让https在我的子应用程序上工作。我对部署多个根域不感兴趣。