.Net Core发布IIS服务器共用主站点域名

.NetCore发布IIS服务器共用主站点域名
如题,最近在研究ASP.NET迁移.NET Core收获良多,针对其中发布子站点共用主站点域名做个笔记。
首先,.NET Core要求程序连接池Application Pool是比较特殊如图:
.Net Core发布IIS服务器共用主站点域名_第1张图片
此次.Net Core移植笔者共用到两个站点API和Client,需要新建两个Application Pool,供新建的两个子站点使用。
新建程序持如图:
step1:
.Net Core发布IIS服务器共用主站点域名_第2张图片
step2:.Net Core发布IIS服务器共用主站点域名_第3张图片
两个程序池创建好以后,就可以分配给两个子站点,如图:
step1:
.Net Core发布IIS服务器共用主站点域名_第4张图片
step2:
.Net Core发布IIS服务器共用主站点域名_第5张图片
这样即可通过主站点域名访问子站点了。

补充说明
由于笔者的主站点是http协议的,但是发布过程中每次都会被重定向成https很是费解。后来终于了解到是由于创建项目时可选如图:
.Net Core发布IIS服务器共用主站点域名_第6张图片
勾选此默认会把http重定向成https,让用户看起来好像是https协议的,就好比你访问了http://www.baidu.com会跳成https://www.baidu.com。
源码如图:

// This method gets called by the runtime. Use this method to configure the HTTP request pipeline.
        public void Configure(IApplicationBuilder app, IWebHostEnvironment env)
		{
			if (env.IsDevelopment())
			{
				app.UseDeveloperExceptionPage();
			}
			else
			{
				app.UseExceptionHandler("/Home/Error");
				// The default HSTS value is 30 days. You may want to change this for production scenarios, see https://aka.ms/aspnetcore-hsts.
				app.UseHsts();
			}
			//app.UseHttpsRedirection();	//重定向https注释解君愁
			app.UseStaticFiles();

			app.UseRouting();

			app.UseAuthorization();

			app.UseEndpoints(endpoints =>
			{
				endpoints.MapControllerRoute(
					name: "default",
					pattern: "{controller=QRCodeRecruitment}/{action=Index}/{id?}");
			});
		}

补充说明第二点
由于是子站点,那么带来的问题就是路径问题,Client层Ajax请求总会访问:

主站点域名/Controller/Action

那么为了解决此问题也是煞费苦心,最终决定引入环境变量,判断是本地Debug还是部署环境,由全局变量进行拼接Url,拼接成:

主站点域名/子站点名/Controller/Action

补充说明三
第一次发布时笔者是蒙蔽的,直接Error页,(是由于HttpClient那里请求API路径配置没改成API子站点路径)这里有一个小技巧,就是当代码框架没来得及写Log时,可以先调试API,返回一个固定字符串,比如.Net Core API 自带的WeatherForecastController就很好,如果这个能访问,就证明API通了,自己页面访问不到就排除掉HttpClient访问不到API了,另外就是排除补充说明一二的情况,应该没什么了。

至于.Net Core 发布IIS请看这篇博客,此博主写的很高大上,笔者就是参考这篇文章发布的。

觉得有帮助就点个赞吧,笔芯

仅供学习参考,如有侵权联系我删除

你可能感兴趣的:(.Net Core发布IIS服务器共用主站点域名)