我正在使用ASP.net和C#在Visual Studio 2010中编写应用程序。我正在使用通过Nuget安装的AjaxControlToolkit,它在本地计算机上进行测试时效果很好。我的问题是,当我将网站在线发布到我们的服务器时,ajax不起作用。 (下面有两张图片。因为我是新用户,所以无法将它们发布在这里,但是我有了photobucket链接。忽略专辑名称,这是朋友的乐队名称......哈哈。)
这是我在本地计算机上测试时的样子。请注意“电话号码”文本框中的MaskedEditExtender,以及顶部导航栏的外观;正常。 (http://i16.photobucket.com/albums/b25/MenOpause_is_awesome/Page1.png)
这是我在线发布时的样子。 MaskedEditExtenders不再在“电话号码”文本框中工作,我的导航栏由于某种原因全部搞砸了。 (http://i16.photobucket.com/albums/b25/MenOpause_is_awesome/Page2-1.png)
我手动上传了我的项目,但在使用AjaxControlToolkit时仍会产生相同的结果。完全把Ajax拿出来,它在我的本地机器和发布的网站上看起来很好;我只是没有我真正想要使用的所有Ajax验证。如果需要,我可以为您提供我的代码,但似乎我只是在上传过程中缺少某个目录或文件,或者某些内容无法正常工作或未正确设置。任何见解将不胜感激。谢谢你提前告诉我,如果你知道原因,我可以提供任何其他信息。
编辑(已解决):我在web.config中添加了以下行,它显然修复了所有内容并使其在线工作:
<handlers>
<remove name="AXD-ISAPI-4.0-64" />
<remove name="AXD-ISAPI-4.0" />
<remove name="AboMapperCustom-27080" />
<remove name="AboMapperCustom-27079" />
<remove name="AboMapperCustom-27078" />
<remove name="AboMapperCustom-27077" />
<remove name="AboMapperCustom-27076" />
<remove name="AboMapperCustom-27075" />
<remove name="AboMapperCustom-27074" />
<remove name="AboMapperCustom-27073" />
<remove name="AboMapperCustom-27072" />
<remove name="AboMapperCustom-27062" />
<add name="AXD-ISAPI-4.0" path="*.axd" verb="GET,HEAD,POST,DEBUG" modules="IsapiModule" scriptProcessor="C:\Windows\Microsoft.NET\Framework\v4.0.30319\aspnet_isapi.dll" resourceType="Unspecified" requireAccess="Script" preCondition="classicMode,runtimeVersionv4.0,bitness32" />
<add name="AXD-ISAPI-4.0-64" path="*.axd" verb="GET,HEAD,POST,DEBUG" modules="IsapiModule" scriptProcessor="C:\Windows\Microsoft.NET\Framework64\v4.0.30319\aspnet_isapi.dll" resourceType="Unspecified" requireAccess="Script" preCondition="classicMode,runtimeVersionv4.0,bitness64" />
<add name="ScriptResource" preCondition="integratedMode" verb="GET,HEAD" path="ScriptResource.axd" type="System.Web.Handlers.ScriptResourceHandler, System.Web.Extensions, Version=1.0.61025.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35" />
</handlers>
答案 0 :(得分:1)
比较两个配置文件并确保它们匹配,当然除非它们应该在连接字符串中有所不同,具体取决于您是否使用某种类型的开发DB。
您可能会在本地计算机上的Web配置文件中看到程序集标记,并且还需要在生产服务器上的Web配置文件中。
您的程序集看起来像这样:
<assemblies>
<add assembly="System.Design, Version=4.0.0.0, Culture=neutral, PublicKeyToken=B03F5F7F11D50A3A"/>
<add assembly="System.Web.Extensions.Design, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35"/>
<add assembly="System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=B77A5C561934E089"/>
</assemblies>
答案 1 :(得分:1)
这有点猜测,但如果它不在web.config中而不在代码中,则可能是bin目录中项目不匹配。
我使用ajax framweork,我的bin目录包含所有这些资源dll。