先週の金曜日、努力を惜しみなく続け、ついにサイトをアップグレードした。アップグレードが完了した後、それは午前中に4つ以上になります。私はそれを数日間サポートするのはOKだと思いました。私はテクニカルディレクターが今朝電話することを期待しなかった、w3p.exeは頻繁にリサイクルされ、そしてウェブサイトの訪問は非常に遅いです。どうしても、理由を見つけるために会社に戻ってください。
会社に戻った後、私はついに開発マネージャとのシングルページストレステストを通じて、それが新しく追加されたWebサービスの非同期コールバックメソッドの問題によるものである可能性があることを知りました。多くの場合、データバインディングエラーが発生し、約3分以内にバインディングエラーが発生します。頻繁なアプリケーションエラーはサーバーリソースを非常に消費する可能性があります。
非同期コールバックメソッドが変更された後、再度解放してテストします。私は同様のエラーが発生しなかったことを見つけ、そしてウェブサイトのページアクセス速度ははるかに速かった。
開発マネージャの分析後、この問題の主な原因は非同期コールバックのメソッドによって引き起こされています。具体的な理由はまだ残っています。

関連する参考文献を見て学ぶ。同期と非同期には違いがあります:メインスレッドとバックグラウンドスレッドメインスレッドはUIに関連しており、ページの更新とデータのバインドに使用されます。非同期呼び出しはバックグラウンドスレッドであり、ページとデータソースを更新することはできません。非同期バインディングの機能を実行したい場合は、スレッドを制御する必要があります。

上記の問題の主な理由は、

アプリケーションのバックグラウンドスレッドがアプリケーションのUIと直接対話しないことです。これは非常に重要です。バックグラウンドスレッドがアプリケーションのUI内のコントロールを変更しようとした場合、そのコントロールは不明な状態にある可能性があります。これはアプリケーションに大きな問題を引き起こす可能性があり、診断が困難です。たとえば、別のスレッドが動的に生成されたビットマップに新しいデータを送信しているとき、それを表示することができない場合があります。または、データセットが更新されているときに、データセットにバインドされているコンポーネントに矛盾する情報が表示されることがあります。

詳細については、次のURLを参照してください。

http://www.microsoft.com/china/msdn/library/architecture/architecture/architecturetopic/SCArchDeGuide/Chapter6UsingMultThr.mspx?mfr=true


Copyright © Windowsの知識 All Rights Reserved