DotNetNuke.Entities.Urls.UrlRewriterUtils - System.ArgumentNullException

DotNetNuke.Entities.Urls.UrlRewriterUtils - System.ArgumentNullException

在 DNN (9.2) 模块上工作,尝试直接从浏览器中的 URL 地址栏调用 http://dnndev.me/desktopmodules/rentalz/server.ashx 时,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" />

有人知道这是什么原因吗?

您不应该再使用处理程序。这是一种很容易在您的网站上造成安全漏洞的旧技术。您应该改为使用 Web API。这也更容易做到。

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

此请求不应由 URL 重写器处理,默认情况下它会忽略 ashx 请求。您可以进入SEO设置页面,查看URL管理下的表达式选项卡,查看ashx是否是在 不重写 URL 正则表达式 中列出。您还可以转到 测试 URL 选项卡并将您的 URL 放入以查看系统正在尝试执行哪种重写。