将独立的aspx / asmx页面添加到DotNetNuke中

时间:2011-02-07 21:41:25

标签: asp.net web-services iis asmx dotnetnuke

你好,我刚刚在服务器上安装了dotnetnuke 5.06,比如路径是mydomain.com/dnn

我有一个独立于dotnetnuke的库,我必须运行它,它包含Web服务和其他各种httphandler,所以我还没有尝试将它集成到DNN中。该库位于mydomain.com/dnn/lib

该库在运行5.04的旧服务器上工作正常,一切正常,但出于某种原因,当我尝试访问mydomain / dnn下的页面时,我的新安装5.06(windows 2008,sql server,iis 7.5)返回404 / lib /,无论是aspx,asmx ......但是图像似乎工作正常,其他一切都返回404或重定向到DotNetNuke中的default.aspx。以前我的旧网站从未发生过这种情况。

有谁知道我在这里缺少什么?任何建议都将不胜感激。

2 个答案:

答案 0 :(得分:0)

DNN 5.5中引入了一个问题,当这些文件位于DesktopModules文件夹之外时会阻止这些文件。 DNN 5.6.1 fixed that在某种程度上(我很确定aspx现在可以正常工作),但不完全。查看链接的问题,它可以帮助/修复在您的站点设置中关闭自动门户网站别名映射。

答案 1 :(得分:0)

实际上,该问题仅在DNN 5.6.2中得到修复,目前处于测试阶段。版本5.6.1仍然存在此问题。有一种适用于所有情况的解决方法:将绝对URL添加到PortalAlias表中。您必须手动执行此操作,因为Portals选项卡不允许与现有别名处于同一级别的别名。

Another solution,如果您不能等待新的DNN版本,请将以下代码添加到RequestFilterModule.vbUrlRewriteModule.vb,以恢复现有行为。这不是应用于DNN 5.6.2的修复程序,因为程序员认为在每次访问时检查文件是否存在太大的性能影响(我认为这很奇怪,因为每次访问都会触及几个文件,主要是DNN缓存使用基于文件的缓存,通常,数据库访问比文件访问慢:

'Add this to the RequestFilterModule.vb (line #59)'
'and to UrlRewriteModule.vb (line #325)'
If File.Exists(app.Server.MapPath(Request.Url.LocalPath)) And Not _ 
   Request.Url.LocalPath.ToLower.EndsWith(glbDefaultPage.ToLower) Then

     'exit early when path is an existing path'
     Exit Sub
End If

显然,如果您应用此修复程序,则必须小心下一次更新DNN。