IIS绑定新增域名后访问异常:appname.domain.com/app无法正常访问
- 服务器仅托管供应商预构建的IIS应用,原访问地址
http://servername.domain.com/app可正常访问 - 新增备用地址
http://appname.domain.com/app,已在IIS站点完成该域名的80/443端口绑定(使用所有未分配IP,无额外勾选选项)并配置对应证书 - 访问新地址时抛出空参数异常,错误详情如下:
Value cannot be null.
Parameter name: sourceDescription: An unhandled exception occurred during the execution of the current web request. Please review the stack trace for more information about the error and where it originated in the code.
Exception Details: System.ArgumentNullException: Value cannot be null.
Parameter name: sourceStack Trace:
[ArgumentNullException: Value cannot be null.
Parameter name: source]
System.Linq.Enumerable.Where(IEnumerable1 source, Func2 predicate) +6466184
Xtraction.Web.Auth.Authenticate.HasSingleActiveProvider() +185
Xtraction.Web.Auth.Authenticate.Page_Load(Object sender, EventArgs e) +115
System.Web.UI.Control.OnLoad(EventArgs e) +106
Xtraction.Web.PageBase.OnLoad(EventArgs e) +17
System.Web.UI.Control.LoadRecursive() +68
System.Web.UI.Page.ProcessRequestMain(Boolean includeStagesBeforeAsyncPoint, Boolean includeStagesAfterAsyncPoint) +3785
检查应用配置的域名允许列表
多数预构建应用会限制可访问的域名范围,打开Xtraction的配置文件(如web.config或专属配置文件),确认是否存在域名白名单/允许列表,将新域名appname.domain.com添加进去。验证IIS绑定配置准确性
- 确认IIS绑定中,新域名的主机头拼写完全正确,无多余空格或字符
- 进入站点的高级设置,检查绑定的主机名列表是否包含新域名,确保IIS能正确将新域名的请求路由到该站点
检查认证提供者配置
错误栈指向认证模块的HasSingleActiveProvider()方法,说明加载认证提供者集合时出现空值:- 查看
web.config中的<authentication>节点或Xtraction专属认证配置项,确认新域名关联了有效的认证提供者配置 - 若应用使用外部认证服务(如ADFS、OAuth),检查该服务是否允许新域名作为合法回调地址
- 查看
重启IIS与应用池
完成配置修改后,执行命令iisreset重启IIS,或单独重启该应用对应的应用池,确保配置变更生效查看应用详细日志
检查Xtraction的应用日志(通常位于站点根目录Logs文件夹,或Windows事件查看器的应用日志),获取更具体的错误上下文,定位为空的数据源具体是哪一项
内容的提问来源于stack exchange,提问作者John Lenard

