4

我有一个 asp.net 应用程序,我在其中使用 System.Windows.Forms 命名空间引用来使用 Web 浏览器控件。该应用程序在本地系统上运行良好,但在托管后显示错误。我如何嵌入 dll 以在 Web 应用程序中使用。

4

4 回答 4

1

回答一个 3 1/2 岁的问题很奇怪......

I. 在您的 web.config 中,添加对 Windows.Forms 的引用

<system.web>
  <compilation>
    <assemblies>
      <add assembly="System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=B77A5C561934E089" />
    </assemblies>
  </compilation>
<system.web>

这仅在引用的 DLL 在 GAC 中时才有效。如果不是:

  1. /Bin在您的网站根目录中创建一个文件夹。
  2. 在那里复制你的 DLL。
  3. 不要在 web.config 中添加引用

二、在您的模块/类中,导入 Windows.Forms (VB: Imports / C#: using)

Imports System.Windows.Forms

您现在可以使用 Web 浏览器控件。不过,这有点棘手。

可能的用途包括:生成截图、AJAX 爬取(#! >> _escaped_fragment_)等

于 2016-01-16T22:32:21.967 回答
0

System.Windows.Forms包含用于在运行代码的计算机上显示事物的类。当您在 PC 上进行测试时,它可以工作,因为您在与开发服务器相同的机器上运行浏览器。

在真实服务器上运行时,其中的任何内容System.Windows.Forms都会显示在服务器上——而不是用户的 PC 上。(此外,它将显示在服务器服务会话中的隐藏桌面上)。

您不应该混合使用网络表单和 Windows 表单。无论您想做什么 - 还有另一种有效的方法,它不涉及 winforms。

不要System.Windows.Forms在 webb 应用程序中使用

于 2012-06-01T12:51:58.537 回答
0

如前所述,您不能将 WinForms 控件与 ASP.NET 一起使用。

使用 iframe 显示您尝试在 webbrowser 控件中显示的任何页面:http: //www.w3schools.com/tags/tag_iframe.asp

于 2012-06-01T13:23:02.373 回答
0

是的,你可以做到,只需复制

system.window.form

dll 到您的 Web Bin 文件夹中,一切都会正常工作。

于 2019-11-19T08:31:24.103 回答