如何在ASP.NET Web应用(C#)中添加子域名
给ASP.NET Web应用添加子域名(如subsite.site.com)的操作步骤
一、DNS域名解析配置(必须在Visual Studio外操作)
这一步是让网络请求能定位到你的服务器,步骤如下:
- 登录你的域名服务商管理后台
- 添加一条解析记录:
- 记录类型选A记录(直接指向服务器IP)或CNAME记录(指向主域名别名,适合CDN场景)
- 主机名填
subsite - 记录值填服务器公网IP(A记录)或主域名的CNAME值(如
site.com)
- 保存配置后,等待DNS生效(通常10分钟到2小时,可通过
ping subsite.site.com验证是否指向正确IP)
二、Web服务器配置(以IIS为例,Visual Studio外操作)
ASP.NET应用部署后依赖服务器处理域名绑定,步骤:
- 打开IIS管理器,找到主站点(或直接创建新站点)
- 右键选择「添加网站」:
- 网站名称:自定义(如SubsitePortal)
- 物理路径:可指向主站点的子目录(共享主项目代码),或独立的ASP.NET项目发布目录(独立子站点)
- 绑定设置:
- 类型:选HTTP(80端口)或HTTPS(443端口)
- IP地址:选择服务器的公网IP
- 主机名:填写
subsite.site.com - 若用HTTPS,需提前给子域名申请SSL证书,绑定环节选择对应证书
- 点击确定完成配置,此时IIS会将subsite.site.com的请求导向指定目录
三、ASP.NET应用内部路由配置(Visual Studio内操作)
如果子站点需要和主站点共享代码,可通过路由约束区分子域名请求:
.NET Core/.NET 5+ 项目
- 自定义子域名路由约束类:
public class SubdomainRouteConstraint : IRouteConstraint { private readonly string _targetSubdomain; public SubdomainRouteConstraint(string targetSubdomain) { _targetSubdomain = targetSubdomain; } public bool Match(HttpContext httpContext, IRouter route, string routeKey, RouteValueDictionary values, RouteDirection routeDirection) { var hostParts = httpContext.Request.Host.Host.Split('.'); if (hostParts.Length < 2) return false; var currentSubdomain = hostParts[0]; return currentSubdomain.Equals(_targetSubdomain, StringComparison.OrdinalIgnoreCase); } }
- 在Program.cs中注册约束并配置路由:
// 注册路由约束 builder.Services.Configure<RouteOptions>(options => { options.ConstraintMap.Add("subdomain", typeof(SubdomainRouteConstraint)); }); // 配置端点路由 app.UseEndpoints(endpoints => { // 子域名专属路由 endpoints.MapControllerRoute( name: "subsite_route", pattern: "{controller=SubsiteHome}/{action=Index}/{id?}", constraints: new { subdomain = "subsite" } ); // 主域名默认路由 endpoints.MapControllerRoute( name: "default", pattern: "{controller=Home}/{action=Index}/{id?}" ); });
.NET Framework 项目
在RouteConfig.cs中配置路由约束,逻辑类似——通过HttpContext.Current.Request.Url.Host获取域名判断,再映射到对应控制器。
四、本地开发环境测试配置
要在本地调试子域名,需修改本地hosts文件和项目启动配置:
- 修改本地hosts文件(路径:
C:\Windows\System32\drivers\etc\hosts),添加一行:
127.0.0.1 subsite.site.com
- 在Visual Studio中修改项目启动配置:
- 右键项目→属性→调试→修改「应用URL」为
https://subsite.site.com:5001;http://subsite.site.com:5000(端口对应你的项目配置) - 或直接编辑
launchSettings.json文件,更新applicationUrl字段
- 右键项目→属性→调试→修改「应用URL」为
内容的提问来源于stack exchange,提问作者notorious.
相关产品推荐
相关产品推荐

