web-dev-qa-db-ja.com

Ajaxクライアント側フレームワークがAsp.Net 4.0のロードに失敗しました

ASP.Net 4.0 Ajaxで複雑な問題が発生しました...マシンでVisual Studio 2010を使用してWebサイトを開始し、以前は正常に動作していた更新パネルを追加しましたが、実行すると突然一連のエラーが発生しましたウェブサイト

Microsoft JScriptランタイムエラー:ASP.NET Ajaxクライアント側フレームワークの読み込みに失敗しました。

Microsoft JScriptランタイムエラー: 'Sys'は未定義です

奇妙なことは、VS 2010と同じマシンでWebサイトを作成し、そこにある更新パネルが完全に機能することです.web.configを新しいWebサイトに持ち、接続だけを変更しました。同じエラーが発生しました

ソリューションを検索しようとしましたが、実際のソリューションが見つかりませんでした。

28
Khaled

Asp.netフォーラムの thread から zhughes による回答を以下に示します。

理由:URLルーティングモジュールが使用されると、scriptmanagerによって生成されるjavascriptのパスが変更されます。

解決策:「axd」拡張子を持つファイル(scriptmanagerによって生成されたファイル)をルーティングしないようにルーティングAPIに指示します

Global.asaxでルーティングルールを登録するメソッドにこのルールを追加します

 routes.Ignore("{resource}.axd/{*pathInfo}");

さらに、web.configにこのセクションが必要です

<system.webServer>
    <modules runAllManagedModulesForAllRequests="true" />
</system.webServer>
32
Khaled

uRL書き換えモジュールを使用している場合、各書き換えルールに追加します

<add input="{URL}" pattern="\.axd$" negate="true"/>

次のような条件タグの下で:

<rule name="HomeRewrite" stopProcessing="true">
   <match url="^home$"/>
   <conditions>
     <add input="{URL}" pattern="\.axd$" negate="true"/>
   </conditions>
   <action type="Rewrite" url="/home.aspx"/>
</rule>
10
Safran Ali

これはキャッシュ/圧縮の問題である可能性があり、Web.Configに以下を追加することで問題を解決しました。

<system.web.extensions>
    <scripting>
      <scriptResourceHandler enableCaching="false" enableCompression="false" />
    </scripting>
</system.web.extensions>
8
Chris Hammond

Microsoft JScriptランタイムエラー:ASP.NET Ajaxクライアント側フレームワークの読み込みに失敗しました。

このような参照を追加します。

<add Assembly="System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35"/>              
<add Assembly="System.Data.Entity, Version=3.5.0.0, Culture=neutral, PublicKeyToken=B77A5C561934E089"/>
<add Assembly="System.Data.Services, Version=3.5.0.0, Culture=neutral, PublicKeyToken=B77A5C561934E089"/>
<add Assembly="System.Data.Services.Client, Version=3.5.0.0, Culture=neutral, PublicKeyToken=B77A5C561934E089"/>
3
kumar

<Handlers><httpHandlers>のように、web.configの一部が欠落している可能性があります。Web構成の古いコピーがある場合は試してみてください。

3
Tarek El-Mallah

同じ問題があり、Framework 4.0(アプリケーションが実行された)のフォルダーでコマンドaspnet_regiis -iを実行して解決しました。これは、IISのハンドラーマッピングの問題でした。この操作により、問題が修正されます。 this post もご覧ください。

これが役に立てば幸いです。

3
ste.xin

私は同じ問題を抱えていました。 VS 2010 SP1をインストールすると、問題はなくなりました。

3
user735232

これは、ページがロードする前にフレームワークJavaScript関数を呼び出そうとしたときに発生する一般的なエラーです。

したがって、domの準備ができたらコードを実行し(ページロードなど)、scriptmanagerタグの後にコードを配置するか、scriptmanagerからjavascriptをロードした後に配置するようにチェックします。

2
Aristos

私の場合、それはIISExpressで、cassini devサーバーに切り替えて頭痛を解消します。

2
koo9

私はこの問題を抱えて全能のグーグルに答えを求め、上記のものを含むさまざまな提案を試みましたが、運はありませんでした。あきらめて他の仕事に移り、数日後に戻ってきて、問題は消えました。

作業を再開し、コードをいくつか変更し、Webサイトを公開すると、問題が再発しました。 Googleに戻って、3.5フレームワークの使用中に問題が発生した人に出会いました。その場合、「プログラムの追加と削除」コントロールパネルに移動して修復オプションを選択することで、問題を解決できました。

同様に、「MS .NET Framework 4 Client Profile」および「MS .NET Framework 4 Extended」を修復しました。これで問題は解決しました。

それが他の誰かのためにそれを解決することを願っています。

2
kannankeril

マスターページの処理にもこの問題がありました。私の場合は、「ベース」メタ設定が混乱してしまいました。別の記事/ブログで、このタイプのエラーの原因となるさまざまなドメインでのajax検証の問題について言及したことを思い出します。

私の場合、<base...>サイトのデフォルトURLの設定を参照しますが、私の開発は明らかに異なるURLでした...したがって、競合し、「ASP.NET Ajaxクライアント側フレームワークのロードに失敗しました。」エラー。

ベースと出来上がりを削除...エラーがなくなった。

HTH

デイブ

1
Dave
  1. .Net Framework 4.0クライアントプロファイルがマシンで使用できない場合は、.net Frame work 4.0を修復するか、再インストールします。
  2. プロジェクトプロパティに移動し、ターゲットフレームワーク3.5を選択します。
1

私の場合、Ajaxから要求されたURLの一部を拒否していたのは、MicrosoftのUrlScanツールでした。無効にすることで問題は解決しました。

1
Basil