因此,我設置了我的Global.asax文件,在發生非常規異常時給我發電子郵件。我收到一封電子郵件,其中包含的異常不會顯示給用戶,並且代碼似乎在客戶端正常工作,並且頁面加載並執行期望的操作。沒有YSOD的例外
我有這樣的代碼在aspx文件,其中顯示了基於角色或客戶編號開始爲特定的字符複選框...
<% if (Roles.IsUserInRole("Admin") ||
txtAccountNo.Text.Substring(0, 2) == "UK" ||
txtAccountNo.Text.Substring(0, 2) == "FR" ||
txtAccountNo.Text.Substring(0, 2) == "IT" ||
txtAccountNo.Text.Substring(0, 2) == "DK" ||
txtAccountNo.Text.Substring(0, 2) == "SE")
{ %>
<label for="chkExpressDelivery"><asp:Literal ID="Literal14" runat="server" Text="<%$ Resources:LocalizedText, fieldLabel_ExpressDelivery %>"></asp:Literal><span class="small"></span></label>
<asp:CheckBox ID="chkExpressDelivery" runat="server" Width="50px" CssClass="_checkbox _normalcheckbox" Text=" " />
<%} %>
現在txtAccountNo從用戶配置文件屬性填充在aspx.cs文件中的Page_Load事件。
錯誤消息我接收該電子郵件(其中,客戶端永遠不會看到)是
索引和長度必須引用位置的字符串內。參數名:長度
我理解的錯誤消息 - 它在說的txtAccountNo.Text基本上是空的代碼運行時,但我不明白的是,客戶端永遠不會看到這個錯誤,頁面表現爲我想要它。
但是,如果我打開web.config文件中的自定義錯誤消息,客戶端被定向到自定義錯誤頁面,但沒有它,就客戶端而言沒有錯誤。
那麼我該如何糾正這個錯誤,這樣我才能打開我的自定義錯誤頁面?
我希望這是有道理的!讓我知道你是否需要更多信息。
感謝
斯圖爾特
這個代碼現在工作...
<% if (txtAccountNo.Text.Length > 0 && (Roles.IsUserInRole("Admin") ||
txtAccountNo.Text.Substring(0, 2) == "UK" ||
txtAccountNo.Text.Substring(0, 2) == "FR" ||
txtAccountNo.Text.Substring(0, 2) == "IT" ||
txtAccountNo.Text.Substring(0, 2) == "DK" ||
txtAccountNo.Text.Substring(0, 2) == "SE"))
{ %>
<label for="chkExpressDelivery"><asp:Literal ID="Literal14" runat="server" Text="<%$ Resources:LocalizedText, fieldLabel_ExpressDelivery %>"></asp:Literal><span class="small"></span></label>
<asp:CheckBox ID="chkExpressDelivery" runat="server" Width="50px" CssClass="_checkbox _normalcheckbox" Text=" " />
<%} %>
謝謝!我會給它一個去,讓它知道它是否有效!我似乎有一些像這樣的錯誤,其中aspx頁面中的代碼與aspx.cs文件中填充的字段有關。 – Stuart
不客氣! – CristisS