问题描述:
最初是192.168.168.17服务器上面的项目在外网上不能正常访问。后面发现只是在IE6下才不能访问,但是在IE7能正常访问。错误提示为微软Ajax框架报错“sys未定义”
如下图:
问题解决:
1. 检查站点下的Web.Config文件里是否含有以下信息:
<compilation debug="true">
<assemblies>
<add assembly="System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35"/>
</assemblies>
</compilation>
<pages>
<controls>
<add tagPrefix="asp" namespace="System.Web.UI" assembly="System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35"/>
<add tagPrefix="asp" namespace="System.Web.UI.WebControls" assembly="System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35"/>
</controls>
</pages>
<httpHandlers>
<remove verb="*" path="*.asmx"/>
<add verb="*" path="*.ashx" type="AjaxPro.AjaxHandlerFactory,AjaxPro.2"/>
<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="*" path="*_AppService.axd" validate="false" type="System.Web.Script.Services.ScriptHandlerFactory, System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35"/>
<add verb="GET,HEAD" path="ScriptResource.axd" type="System.Web.Handlers.ScriptResourceHandler, System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" validate="false"/>
</httpHandlers>
<httpModules>
<add name="ScriptModule" type="System.Web.Handlers.ScriptModule, System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35"/>
</httpModules>
2. 如果这些信息都存在并且一致,检查一下IIS的配置信息。
检查是否有将.axd映射进来:C:\WINDOWS\Microsoft.NET\Framework\v2.0.50727\aspnet_isapi.dll
3. 如果这些设置都正常。再检测一下服务器上的时间。
第二天发现服务器上的年份是2006年,而昨天查看时间的时候没有去查看年份只查看了时间(估计昨天这一步可能就过了,就不要做下面的事情。)
4. 比较了一下测试服务器上与产品服务器上的配置,没有什么差别。
5. 如果以上所述都正常的话,就得考虑是否是.Net FrameWork造成的尝试修复或者重装
这次问题是由于服务器上的.Net FrameWork版本跟开发环境上的版本不一致引起的,服务器上的版本是3.5的而开发环境上的是3.5 Sp1的,所以后面将服务器上的版本打上SP1补丁就正常了。