更新面板在网络上失败

时间:2013-12-02 13:17:20

标签: c# asp.net ajax iis-8

在回发IE上遇到错误

会发生什么
  
    

无法获取未定义或空引用的属性'PRM_ServerError'

  

仅当项目部署到远程计算机上且仅在IE中时才会发生此错误。我不确定为什么这就像在本地部署项目时一样,它在IE中正确执行。此外,当我从远程服务器本地访问本地网站时,它不会遇到此问题。起初我认为这是一个安全问题,但网站在同一安全区域执行,无论它在何处部署。有任何想法吗?感谢。

<%@ Page Language="C#" AutoEventWireup="true" MasterPageFile="~/Site.Master" CodeBehind="test.aspx.cs" Inherits="UnitConverterWrapperDemo.Controllers.KcclWrapper" %>
<asp:Content ID="BodyContent" ContentPlaceHolderID="MainContent" runat="server">
    <h1>Wrapper Test</h1>
    <br />
    <h3>Calculation</h3>
    <asp:UpdatePanel runat="server">
        <ContentTemplate>
            <asp:DropDownList ID="Calculation" runat="server" CssClass="form-control" AutoPostBack="true" OnSelectedIndexChanged="Calculation_SelectedIndexChanged"></asp:DropDownList>
        </ContentTemplate>
    </asp:UpdatePanel>
    <asp:Panel runat="server">
        <script type="text/javascript">
            $('#tab a:first').tab('show');

            $('#calcOptions').click(function (e) {
                e.preventDefault()
                $(this).tab('show')
            })
            $('#Inputs').click(function (e) {
                e.preventDefault()
                $(this).tab('show')
            })
        </script>
        <br />

        <ul class="nav nav-tabs" id="tab">
            <li class="active"><a href="#calcOptions" data-toggle="tab" class="active">Options</a></li>
            <li><a href="#Inputs" data-toggle="tab">Inputs</a></li>
            <li><a href="#Constants" data-toggle="tab">Constants</a></li>
            <li><a href="#Intermediate" data-toggle="tab">Intermediate</a></li>
            <li><a href="#Output" data-toggle="tab">Outputs</a></li>
        </ul>

        <br />

        <div class="tab-content">
            <div class="tab-pane active" id="calcOptions">
                <asp:UpdatePanel runat="server">
                    <ContentTemplate>
                        <asp:Label Text="text" runat="server" ID="OptionsHeader" />
                        <fieldset>
                            <asp:Panel runat="server" ID="Options"></asp:Panel>
                        </fieldset>
                        <hr />
                    </ContentTemplate>
                </asp:UpdatePanel>
            </div>
            <div class="tab-pane" id="Inputs">
                <asp:UpdatePanel runat="server">
                    <ContentTemplate>
                        <asp:Panel runat="server" ID="inputs">
                        </asp:Panel>
                    </ContentTemplate>
                </asp:UpdatePanel>
            </div>

            <div class="tab-pane" id="Constants">
                <asp:UpdatePanel runat="server">
                    <ContentTemplate>
                        <asp:Panel runat="server" ID="constrants">
                        </asp:Panel>
                    </ContentTemplate>
                </asp:UpdatePanel>
            </div>

            <div class="tab-pane" id="Intermediate">
                <asp:UpdatePanel runat="server">
                    <ContentTemplate>
                        <asp:Panel runat="server" ID="intermediate">
                        </asp:Panel>
                    </ContentTemplate>
                </asp:UpdatePanel>
            </div>

            <div class="tab-pane" id="Output">
                <asp:UpdatePanel runat="server">
                    <ContentTemplate>
                        <asp:Panel runat="server" ID="output">
                        </asp:Panel>
                    </ContentTemplate>
                </asp:UpdatePanel>

                <button type="button" class="btn btn-primary btn-lg">Recalculate</button>
            </div>
        </div>
    </asp:Panel>
</asp:Content>

1 个答案:

答案 0 :(得分:1)

对于那些感兴趣的人,我在部署到我们的生产网络服务器后立即在我的页面上收到同样的错误。

在调用某些服务器端代码时,在更新面板内的ajax调用期间发生错误,但iis应用程序池已被回收(在部署后会发生)。

通过将AsyncPostBackError事件处理程序添加到ScriptManager,可以在代码中处理错误。

然后,您可以在发生此错误时将用户重定向到某个位置,或者显示一条弹出消息,说明其会话已过期,现在已刷新或适合您的应用程序。

此处有更多信息:https://msdn.microsoft.com/en-us/library/bb398934.aspx

希望这有助于某人:)