【问题标题】:Two-Way Communication Between HTML in .Net WebBrowser and WinForms application doesn't work on Windows Server.Net WebBrowser 和 WinForms 应用程序中的 HTML 之间的双向通信在 Windows Server 上不起作用
【发布时间】:2011-11-08 07:34:40
【问题描述】:

我有一个 C# WinForms 应用程序,它使用 WebBrowser 来显示一些 UI 元素(嵌入网页)。当用户单击网页上的按钮时,我需要执行一些 C# 代码。我已按照this 文章中描述的步骤进行操作,并且在 Windows 7 上一切正常。但是,当我在 Windows Server 2008 上运行该应用程序时,它对按钮单击没有反应。同样的故事也发生在 Windows Server 2003 上。我相信存在一些安全问题,但无法弄清楚它们是什么。

这是按钮的 HTML:

<input type="button" value="Run Foo" class="wizard_button" 
    onclick="window.external.Foo()" />

这里是 C# 代码:

[PermissionSet(SecurityAction.Demand, Name = "FullTrust")]
[ComVisible(true)]    
public partial class UI : Form
{
    public UI()
    {
        //doing something
        //...
        webBrowser.ObjectForScripting = this;
        webBrowser.ScriptErrorsSuppressed = true;
    }

    public void Foo()
    {
        //Do what needs to be done when the button is clicked
    }
}

【问题讨论】:

    标签: c# winforms interop browser


    【解决方案1】:

    我设法找出导致这种行为的原因。这都是关于“Internet Explorer 增强的安全配置”,需要关闭。为此,您需要打开“服务器管理器”,找到“安全信息”部分,单击“配置 IE ESC”链接并关闭此功能。 Here是有截图的文章。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-09-13
      • 2013-02-11
      • 2012-01-27
      • 1970-01-01
      • 2019-05-19
      • 1970-01-01
      相关资源
      最近更新 更多