【发布时间】:2014-11-26 00:47:20
【问题描述】:
我有一个使用 Telerik 控件的网站。登录按钮链接不会触发与其关联的事件。在我的本地开发环境中不会发生此问题。仅当我部署到我的 IIS 服务器时才会发生。
我在 IE 和 Chrome 中运行过它,它的行为方式相同。我有一个 JavaScript 弹出窗口,当您刷新需要单击以访问登录按钮的页面时会触发该弹出窗口。这是一个网站警告,上面写着“通过使用这个网站,您同意..blah blah blah”。它只是 JavaScript,当您单击确认时,它会消失,您可以输入您的凭据并单击登录。
当您点击登录时,JavaScipt 弹出窗口会触发,您必须再次点击确认才能登录。
起初,我注意到我在页面上的脚本中收到“sys is undefined”错误。我查了一下,似乎 web.config 中可能缺少一些关于 Telerik 的内容。我更新了 IIS 服务器的 web.config,问题似乎得到了解决。
不过,它又回来了,我似乎不知道该怎么办。我希望有一些故障排除技巧或其他帮助。我不确定 Telerik 控件在多大程度上导致了这种情况,或者即使它们是。无论如何,没有触发的实际按钮只是一个普通的旧 ASP .NET 按钮。
这里有一些代码:
首先,页面指令上的 AutoEventWireUp 设置为 True:
<%@ Page Language="C#" AutoEventWireup="True" CodeBehind="Default.aspx.cs" Inherits="xxx.Default" %>
按钮本身的 ASPX HTML 在一个表格中(我知道表格是一个糟糕的地方,但我会将此归咎于编写此内容的人。)这是登录按钮:
<td>
<asp:Button ID="login" runat="server" Text="Login" OnClick="Login_Click" SkinID="Button" ForeColor="White" Width="100px" />
</td>
代码隐藏做了一些事情,但这里的重点是它根本不会触发。相反,页面会自行刷新:
protected void Login_Click(object sender, EventArgs e)
{
if (Helper.DoWriteToLogFile())
{
Helper.WriteToCLogFile("Default.aspx -- Login_Click() clicked....");
}
:
:
是的,我已启用日志记录,并且永远不会写入日志文件。
对于实际的 Page_Load 事件,我确实记录了该事件,并且记录确实发生了:
protected void Page_Load(object sender, EventArgs e)
{
if (!IsPostBack)
{
if (Helper.DoWriteToLogFile())
{
Helper.WriteToLogFile("Default.aspx -- DoWriteToLogFile is enabled.");
}
:
:
因此,我知道日志记录有效。我知道页面加载有效,但我似乎无法启动登录按钮。
由于之前发生的事情,我只是猜测可能有 Telerik 参与。
在 IE 中,我使用了启用脚本调试的开发人员工具 (F12),但没有发现任何直接问题。我确实看到了:
DOM7011: The code on this page disabled back and forward caching. For more information, see: http://go.microsoft.com/fwlink/?LinkID=291337
File: mysite.com
HTML1300: Navigation occurred.
File: mysite.com
DOM7011: The code on this page disabled back and forward caching. For more information, see: http://go.microsoft.com/fwlink/?LinkID=291337
File: mysite.comm
这些都是警告而不是错误,我似乎无法在脚本调试器中显示任何问题。
我被难住了。我很感激这方面的任何帮助。 web.config 的 Handlers 和 HttpHandlers 部分在我的本地开发人员和 IIS 服务器之间匹配,所以我不知道我是否需要在那里做任何事情。以下是部分:
<httpHandlers>
<add path="ChartImage.axd" type="Telerik.Web.UI.ChartHttpHandler" verb="*" validate="false" />
<add path="Telerik.Web.UI.SpellCheckHandler.axd" type="Telerik.Web.UI.SpellCheckHandler" verb="*" validate="false" />
<add path="Telerik.Web.UI.DialogHandler.aspx" type="Telerik.Web.UI.DialogHandler" verb="*" validate="false" />
<add path="Telerik.RadUploadProgressHandler.ashx" type="Telerik.Web.UI.RadUploadProgressHandler" verb="*" validate="false" />
<add path="Telerik.Web.UI.WebResource.axd" type="Telerik.Web.UI.WebResource" verb="*" validate="false" />
<add type="Telerik.ReportViewer.WebForms.HttpHandler, Telerik.ReportViewer.WebForms, Version=5.1.11.713, Culture=neutral, PublicKeyToken=a9d7983dfcc261be" path="Telerik.ReportViewer.axd" verb="*" validate="true" />
</httpHandlers>
<httpModules>
<add name="RadUploadModule" type="Telerik.Web.UI.RadUploadHttpModule" />
<add name="RadCompression" type="Telerik.Web.UI.RadCompression" />
</httpModules>
<trace writeToDiagnosticsTrace="false" enabled="false" pageOutput="false" localOnly="true" requestLimit="400" />
<httpCookies httpOnlyCookies="true" requireSSL="false" />
<authorization>
<deny users="?" />
<allow users="*" />
</authorization>
</system.web>
<system.webServer>
<validation validateIntegratedModeConfiguration="false" />
<modules runAllManagedModulesForAllRequests="true">
<remove name="RadUploadModule" />
<remove name="RadCompression" />
<add name="RadUploadModule" type="Telerik.Web.UI.RadUploadHttpModule" preCondition="integratedMode" />
<add name="RadCompression" type="Telerik.Web.UI.RadCompression" preCondition="integratedMode" />
<add name="Glimpse" type="Glimpse.Core.Module,Glimpse.Core" preCondition="integratedMode" />
</modules>
<handlers>
<remove name="ChartImage_axd" />
<remove name="Telerik_Web_UI_SpellCheckHandler_axd" />
<remove name="Telerik_Web_UI_DialogHandler_aspx" />
<remove name="Telerik_RadUploadProgressHandler_ashx" />
<remove name="Telerik_Web_UI_WebResource_axd" />
<add name="ScriptResource" preCondition="integratedMode" verb="GET,HEAD" path="ScriptResource.axd" type="System.Web.Handlers.ScriptResourceHandler, System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" />
<add name="ChartImage_axd" path="ChartImage.axd" type="Telerik.Web.UI.ChartHttpHandler" verb="*" preCondition="integratedMode" />
<add name="Telerik_Web_UI_SpellCheckHandler_axd" path="Telerik.Web.UI.SpellCheckHandler.axd" type="Telerik.Web.UI.SpellCheckHandler" verb="*" preCondition="integratedMode" />
<add name="Telerik_Web_UI_DialogHandler_aspx" path="Telerik.Web.UI.DialogHandler.aspx" type="Telerik.Web.UI.DialogHandler" verb="*" preCondition="integratedMode" />
<add name="Telerik_RadUploadProgressHandler_ashx" path="Telerik.RadUploadProgressHandler.ashx" type="Telerik.Web.UI.RadUploadProgressHandler" verb="*" preCondition="integratedMode" />
<add name="Telerik_Web_UI_WebResource_axd" path="Telerik.Web.UI.WebResource.axd" type="Telerik.Web.UI.WebResource" verb="*" preCondition="integratedMode" />
<add name="Telerik.ReportViewer.axd_*" type="Telerik.ReportViewer.WebForms.HttpHandler, Telerik.ReportViewer.WebForms, Version=5.1.11.713, Culture=neutral, PublicKeyToken=a9d7983dfcc261be" path="Telerik.ReportViewer.axd" verb="*" preCondition="integratedMode" />
<add name="Glimpse" path="glimpse.axd" verb="GET,POST" type="Glimpse.Core.Handler,Glimpse.Core" preCondition="integratedMode" />
</handlers>
如果您认为我可以提供任何其他信息,请告诉我。谢谢。
【问题讨论】:
-
您的 IIS 版本是多少?和 RadControls 的版本?是否有可以查看的公共 URL?也许尝试在一个简单的页面中隔离问题并提供对它的访问。
-
没有公共 URL。 IIS 在 Windows 2012 服务器上是 7.5,但在早期版本的 IIS 7.0 中已经出现此问题。 Telerik 是 2014.2.724.45
标签: .net events asp-classic scripting telerik