DotNetNuke.Entities.Urls.UrlRewriterUtils - System.ArgumentNullException

时间:2018-04-13 20:13:16

标签: asp.net webforms dotnetnuke

在尝试直接从浏览器中的URL地址栏调用http://dnndev.me/desktopmodules/rentalz/server.ashx时,在DNN(9.2)模块上工作并在DNN日志文件中收到以下错误:

        DotNetNuke.Entities.Urls.UrlRewriterUtils - System.ArgumentNullException: 
        Value cannot be null.
        Parameter name: url
        at System.Web.HttpResponse.Redirect(String url, 
        Boolean endResponse, Boolean permanent)    
        at DotNetNuke.Entities.Urls.AdvancedUrlRewriter.ProcessRequest(
        HttpContext context, Uri requestUri, Boolean useFriendlyUrls,
        UrlAction result, FriendlyUrlSettings settings, 
        Boolean allowSettingsChange, Guid parentTraceId)

当我从Web.config文件中删除以下条目时,ASHX页面正常工作,但该网站的其余部分却爆炸了!

<add name="UrlRewrite" type="DotNetNuke.HttpModules.UrlRewriteModule,
    DotNetNuke.HttpModules" preCondition="managedHandler" />

有谁知道造成这种情况的原因是什么?

2 个答案:

答案 0 :(得分:1)

您不应再使用处理程序了。这是一种旧技术,可以轻松地在您的网站上创建安全漏洞。您应该使用Web API。这样做也容易得多。

http://www.dnnsoftware.com/wiki/services-framework-webapi

答案 1 :(得分:1)

此请求不应由URL重写器处理,默认情况下会忽略ashx个请求。您可以转到SEO设置页面,然后检查 URL管理下的表达式选项卡,查看是否列在不重写URL中ashx正则表达式。您还可以转到测试网址标签并输入您的网址,以查看系统尝试执行的重写类型。