ホームページ > バックエンド開発 > C++ > AjaxコールにC#Webbrowserコントロールがぶら下がっているのはなぜですか?どうすれば修正できますか?

AjaxコールにC#Webbrowserコントロールがぶら下がっているのはなぜですか?どうすれば修正できますか?

Linda Hamilton
リリース: 2025-01-30 20:33:13
オリジナル
788 人が閲覧しました

Why is my C# WebBrowser Control Hanging on AJAX Calls, and How Can I Fix It?

C# 'のWebbrowserコントロールでAJAXの問題のトラブルシューティング

c#WebBrowserコントロールは、Ajaxの呼び出しに苦労することがあり、「あなたのリクエストが処理されている」というイライラすることにつながります。この動作は、通常、これらの呼び出しを問題なく処理する完全なIEブラウザとは大きく異なります。

ソリューションは、

コントロールの動作を標準のIEインスタンスの動作とより適切に調整するために、機能制御を構成することにしばしばあります。 重要なことに、WebBrowser機能を設定します レジストリ設定を変更する関数です:"FEATURE_BROWSER_EMULATION"

この関数は

<code class="language-csharp">private void SetBrowserFeatureControlKey(string feature, string appName, uint value)
{
    using (var key = Registry.CurrentUser.CreateSubKey(
        String.Concat(@"Software\Microsoft\Internet Explorer\Main\FeatureControl\", feature), 
        RegistryKeyPermissionCheck.ReadWriteSubTree))
    {
        key.SetValue(appName, (UInt32)value, RegistryValueKind.DWord);
    }
}</code>
ログイン後にコピー
内で使用されます

SetBrowserFeatureControl()これらの変更が初期化される前にこれらの変更が適用されることを確認するには、メインフォームのコンストラクターに

<code class="language-csharp">private void SetBrowserFeatureControl()
{
    // Avoid modifying settings in the Visual Studio debugger
    var fileName = System.IO.Path.GetFileName(Process.GetCurrentProcess().MainModule.FileName);
    if (String.Compare(fileName, "devenv.exe", true) == 0 || String.Compare(fileName, "XDesProc.exe", true) == 0) 
        return;

    // Register necessary features (see detailed explanation below for a comprehensive list)
    // ...
}</code>
ログイン後にコピー
を呼び出します:

WebBrowser SetBrowserFeatureControl()さまざまな互換性の問題を解決するための推奨機能制御設定の完全なリストについては、このリソースを参照してください。 🎜>コントロール。

以上がAjaxコールにC#Webbrowserコントロールがぶら下がっているのはなぜですか?どうすれば修正できますか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
著者別の最新記事
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート