2

はい、有名な「'Sys' is undefined」Microsoft JS の問題です。

私はすでに約 4 時間掘り下げて、見つけたすべての提案を試しました。そのため、すぐにこれを重複と呼ぶ前に、ここにお願いします。

最終的に、この質問これとまったく同じですが、受け入れられた回答は私の状況には関係なく、OP はアクティブなメンバーではなくなりました。


バックグラウンド

このアプリケーションには約 100 ページあります。それらのそれぞれは、最終的に同じ基本クラスから継承します。この基本クラスはメソッドをオーバーライドし、最初のコントロールとしてInita を動的に追加します。ScriptManagerForm

それらすべてのうちの 1 つのページで、リンクした投稿に記載されている問題に遭遇しました。受け入れられた回答は関連性があると述べました。理由は次のとおりです。

  1. Sys.通話はしていません
  2. 私のページには AJAX 対応のコントロールがありません
  3. 私のページには JavaScript がありません
  4. 私の web.config は正確です。適切なハンドラ エントリが含まれています。
  5. この問題は、IIS 6.0 と IIS 7 以降の両方で再現可能です。
  6. を介して明示的に ScriptManager をページに追加する<asp:ScriptManager />と、ScriptResource.axd インクルードは依然として出力ページにレンダリングされません。
  7. ブラウザの履歴のクリア、一時 ASP.NET ファイル、再起動などを試しましたが、動作は変わりませんでした
  8. UAT 環境の古いバージョンのアプリケーションは正しく機能します。それ以来、ベースページのコードも web.config ファイルも変更されていません

私は完全に困惑しています。これは、IIS 6.0 (Prod と UAT の両方) を搭載した Win Server 2003 で実行される ASP.NET 3.5 Webサイトプロジェクトです。私の開発環境は、IIS 7.5 を使用した Win7 です。両方の環境で同じ動作。

質問

誰にもアイデアはありますか?ASP.NET 3.5.1 フレームワークのバグだと思い始めています...

4

2 に答える 2

1

私はちょうど解決したように見える同様の問題を抱えていました。

PageLoad以外のページ ライフサイクル イベントをオーバーライドする場合は、イベントのベース バージョンを必ずトリガーしてください。たとえば、私は使用していましたOnPreRenderComplete

protected override void OnPreRenderComplete(EventArgs e)
{
    base.OnPreRenderComplete(e); //ADDING THIS LINE FIXED THE PROBLEM

    //Add THEAD etc to Gridview
    if (gvQueue.Rows.Count > 0)
    {
            gvQueue.HeaderRow.TableSection = TableRowSection.TableHeader;
    }
}
于 2012-11-12T04:18:44.503 に答える
0

他のすべてをお試しいただき、再現可能であるため、確認できる 3 つの原因が考えられます。

1) 要素が正しく定義されていません。

runat="server"head要素が指定されていることを確認してください 。id厳密には必須ではないと思いますが、常に以下も提供しています。

<head id="HEAD1" runat="server">

2) 例外の原因となっているコードは、ScriptResource.axd を含める前に実行されています。

これが該当するかどうかを確認するために、例外が発生したときにこれまでにページに読み込まれたものを調べます。不足していると報告されているリソースが表示されない場合は、注文に問題があることがわかります。

これは、継承ツリー内の Page.Init (またはその他のメソッド) の 2 つのフックが原因であることがわかりました。これが発生すると、実行順序を保証できません。

3) 無効なページ構造。

一重引用符、二重引用符、< などの見間違いやすい文字がページや JavaScript の構造を無言で破壊するケースを数多く見てきました。

そうでないことを確認するために、まずデザイン モード (編集、詳細、ドキュメントの検証) でページを検証し、エラーを修正します。

デザイン モードでエラーがない場合は、レンダリングされたページのソースをプロジェクト内の空のページにコピーして検証することで、レンダリングされたページを検証します。このプロセスにより、ページ構造の微妙な問題が複数検出されました。

4) 上記のいずれでも問題が解決しない場合は、フレームワークに問題がある可能性があります。存在する場合は、ページ内の要素名または順序が原因である可能性があります。問題が解決するまで、ページ内の項目を削除または並べ替えてみてください。

お役に立てれば。

于 2012-07-14T22:37:11.480 に答える