首页 新闻 会员 周边

asp.net core 中使用 AddIISUrlRewrite 又遇 NullReferenceException

0
悬赏园豆:30 [已解决问题] 解决于 2019-06-25 10:43

昨天刚解决 asp.net core 中使用 AddIISUrlRewrite 时遇到 null 引用问题,今天又遇 null 引用异常,这次发生在 IISUrlRewrite.ConditionEvaluator.Evaluate 方法中

System.NullReferenceException: Object reference not set to an instance of an object.
   at Microsoft.AspNetCore.Rewrite.Internal.IISUrlRewrite.ConditionEvaluator.Evaluate(ConditionCollection conditions, RewriteContext context, BackReferenceCollection backReferences)

请问如何解决?

dudu的主页 dudu | 高人七级 | 园豆:31003
提问于:2019-06-24 08:26
< >
分享
最佳答案
0

在 Microsoft.AspNetCore.Rewrite 的实现源码 UrlRewriteFileParser.cs 中将

builder.ConfigureConditionBehavior(grouping, trackAllCaptures);

foreach (var cond in conditions.Elements(RewriteTags.Add))
foreach (var cond in adds)
{
    ParseCondition(cond, builder, patternSyntax);
}

改为下面的代码可以解决这个问题

var adds = conditions.Elements(RewriteTags.Add);
if (adds == null || adds.Count() == 0)
{
    return;
}

builder.ConfigureConditionBehavior(grouping, trackAllCaptures);

foreach (var cond in adds)
{
    ParseCondition(cond, builder, patternSyntax);
}
dudu | 高人七级 |园豆:31003 | 2019-06-25 10:42
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册