【发布时间】:2010-10-26 15:18:48
【问题描述】:
我正在开发一个使用相当多的 Ajax 的 asp.net Web 应用程序 - 没什么太复杂的,只是从 Ajax Toolkit 更新面板和控件。在移交之前,它使用的是 Ajax 1.0,然后升级为在 3.5 框架上工作。工具包控件已替换为正确的版本,我可以在项目中创建一个带有更新面板、脚本管理器和模式弹出扩展器的新页面,所有这些都可以正常工作。
然而,一些现有页面上的 Ajax 突然停止工作 - 我有 3 个母版页,并认为这是其中之一,但现在问题似乎已经“蔓延”到另一个。我已经测试了 MasterPages(这是放置 scriptManager 的地方),这也可以正常工作。
当我加载一个有问题的页面并检查 Firefox 错误控制台时,有很多问题,主要是:
Sys.Res is undefined
Sys.Application is undefined
Sys.UI.DomEvent is undefined
这一切似乎都在向我暗示,由于某种原因,这些页面上没有加载 Ajax 库,但我不知道为什么?有没有人遇到过类似的问题?
更新
大多数页面只显示用户控件,而用户控件又包含包括所有 Ajax 在内的内容。其中一个不起作用的页面仅包含 1 个 UserControl。如果我创建一个新页面并将其命名为不同的名称(例如 testpage1.aspx),请使用相同的 MasterPage,然后将控件拖动到它上面可以正常工作。所有的 Ajax 都按预期工作。
如果我随后删除了不起作用的页面,请创建一个相同 nakme 的新页面并按照完全相同的步骤添加 UserControl,然后它就不起作用了。我已经尝试清除 C:\Users\\AppData\Local\Microsoft\WebsiteCache 中的网站缓存,但这没有任何区别。
我实际上已经尝试在不同的文件夹中创建一个与其中一个非工作页面同名的页面,并确保它是相同的。这个页面可以正常工作,但是如果我删除非工作页面并将这个页面复制到文件夹中,那么它就不起作用了!!!是否还有其他缓存?
进一步更新
当 Ajax 是网站的特定文件夹时,它似乎停止工作 - 这只是一个标准文件夹,其中包含用于表单身份验证的 web.config,其中如下所示:
<?xml version="1.0" encoding="utf-8"?>
<configuration>
<system.web>
<authorization>
<allow roles="Master Admin" />
<allow roles="Introducer" />
<deny users="*" />
</authorization>
</system.web>
</configuration>
表单身份验证会阻止脚本表单加载吗?
【问题讨论】:
标签: asp.net asp.net-ajax