Sys未定义
我有一个正在开发的ASP.Net/AJAX控制套件项目。 80%的时间没有问题。该页面将按预期运行。如果刷新页面,它有时会显示一个JavaScript错误" Sys is undefined"。
它不会一直发生,但是可以重现。发生这种情况时,用户必须关闭其浏览器并重新打开页面。
这使我相信这可能是IIS设置。
另一个说明。无论何时出现错误,我都查看了页面源代码。当页面引发错误时,以下代码丢失:
<script src="/ScriptResource.axd?d=EAvfjPfYejDh0Z2Zq5zTR_TXqL0DgVcj_h1wz8cst6uXazNiprV1LnAGq3uL8N2vRbpXu46VsAMFGSgpfovx9_cO8tpy2so6Qm_0HXVGg_Y1&t=baeb8cc" type="text/javascript"></script> <script type="text/javascript"> //<![CDATA[ if (typeof(Sys) === 'undefined') throw new Error('ASP.NET Ajax client-side framework failed to load.'); //]]> </script>
解决方案
回答
尝试将ScriptManager设置为此。
<asp:ScriptManager ID="ScriptManager1" runat="server" EnablePartialRendering="true" />
回答
除了确保页面上具有ScriptManager之外,还需要确保正确配置了web.config。
当发布ASP.NET AJAX 1.0(用于.NET 2.0)时,有许多自定义的web.config设置,其中添加了处理程序,控件等。
我们可以在这里找到配置信息:http://www.asp.net/AJAX/documentation/live/ConfiguringASPNETAJAX.aspx
回答
确保与.NET AJAX交互的所有客户端脚本的末尾都有以下行:
if (typeof(Sys) !== 'undefined') Sys.Application.notifyScriptLoaded();
这告诉脚本管理器整个脚本文件已加载,并且可以开始调用客户端方法
回答
我遇到了同样的问题,经过多方争执之后,我决定尝试找出问题所在,只将脚本管理器加载到一个空页面中,这仍然会导致同样的错误。通过将站点的web.config与全新的(正在运行的)测试站点进行比较,发现了问题所在,从而将系统中的<compilation debug =" true">更改为
<compilation debug =" false">`。我的web.config的.web部分解决了该问题。
我还必须从system.web中删除<xhtmlConformance mode =" Legacy" />
条目,以使更新面板正常工作。单击此处了解此问题。
回答
除了我的页面始终生成Sys是未定义的错误之外,还有一个类似的问题。
对我而言,问题源于以下事实:我刚刚安装了.NET 2.0的AJAX 1.0扩展,但已经在Visual Studio中创建了我的Web项目。
当尝试创建AJAX控件时,我一直遇到此错误,我在这里发现了Slace和MadMax1138s的帖子。并确定这是我的web.config,我使用新的"启用AJAX的网站"项目类型创建了一个新项目,并且确定web.config具有使用AJAX控件所需的大量自定义项。
我刚刚用已经完成的web.config更新来更新了该web.config,并将其放到我现有的项目中,并且一切正常。
回答
我通过将包含Sys。*调用的<script type =" text / javascript"> </ script>
块向下移动(移至主体的<asp:Content />关闭之前的最后一项)来解决了我的问题。页面上的HTML)。我最初在页面的HEAD<asp:Content />
部分中放置了脚本块。我正在一个具有MasterPageFile的页面内工作。希望这可以帮助某人。
回答
当我遇到错误时
- Sys未定义
- ASP.NET Ajax客户端框架加载失败
在IE中使用.NET 2.0中的ASP.NET Ajax控件时,我需要在<system.web>标签内的web.config文件中添加以下内容:
<httpHandlers> <remove verb="*" path="*.asmx"/> <add verb="*" path="*.asmx" validate="false" type="System.Web.Script.Services.ScriptHandlerFactory, System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35"/> <add verb="GET" path="ScriptResource.axd" type="System.Web.Handlers.ScriptResourceHandler" validate="false"/> </httpHandlers>
回答
请检查服务器是否设置了正确的时间和日期...
大约浪费了6个小时后,我在某处阅读了...
必须更新服务器的日期和时间才能正常工作...
否则,我们将得到" Sys"是未定义的错误。
回答
只需在解决方案根目录中创建空白.axd文件,根目录问题就可以解决。 (2个文件:scriptresouce.asx,webresource.asxd)
回答
今天,我一直看到完全相同的错误,但这不是配置或者直接的JavaScript问题。
外部.net项目已更新,但网站的编译未正确吸收所做的更改。我的推测是ASP.NET ajax无法正确构造.NET对象的客户端表示,因此无法正确加载。
为了解决该问题,我重建了外部项目,并重建了遇到问题的解决方案。问题消失了。
回答
我们好,thanx解决了我的问题,
默认情况下vs 2008将添加
<!--<add verb="*" path="*.asmx" validate="false" type="Microsoft.Web.Script.Services.ScriptHandlerFactory, Microsoft.Web.Extensions, Version=1.0.61025.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35" /> <add verb="GET" path="ScriptResource.axd" type="Microsoft.Web.Handlers.ScriptResourceHandler" validate="false" />-->
需要将默认配置(以上)更正为以下代码
使固定
<add verb="*" path="*.asmx" validate="false" type="System.Web.Script.Services.ScriptHandlerFactory, System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35"/> <add verb="GET" path="ScriptResource.axd" type="System.Web.Handlers.ScriptResourceHandler" validate="false"/>
回答
我们必须在web.config中添加这些行
<httpHandlers> <remove verb="*" path="*.asmx"/> <add verb="*" path="*.asmx" validate="false" type="System.Web.Script.Services.ScriptHandlerFactory, System.Web.Extensions, Version=1.0.61025.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35"/> <add verb="*" path="*_AppService.axd" validate="false" type="System.Web.Script.Services.ScriptHandlerFactory, System.Web.Extensions, Version=1.0.61025.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35"/> <add verb="GET,HEAD" path="ScriptResource.axd" type="System.Web.Handlers.ScriptResourceHandler, System.Web.Extensions, Version=1.0.61025.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35" validate="false"/> </httpHandlers> <httpModules> <add name="ScriptModule" type="System.Web.Handlers.ScriptModule, System.Web.Extensions, Version=1.0.61025.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35"/> </httpModules> </system.web>
希望这可以帮助。