在尝试直接从浏览器中的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" />
有谁知道造成这种情况的原因是什么?
答案 0 :(得分:1)
您不应再使用处理程序了。这是一种旧技术,可以轻松地在您的网站上创建安全漏洞。您应该使用Web API。这样做也容易得多。
答案 1 :(得分:1)
此请求不应由URL重写器处理,默认情况下会忽略ashx
个请求。您可以转到SEO设置页面,然后检查 URL管理下的表达式选项卡,查看是否列在不重写URL中ashx
正则表达式。您还可以转到测试网址标签并输入您的网址,以查看系统尝试执行的重写类型。