【问题标题】:Error when trying to open a winform from an asp page尝试从 asp 页面打开 winform 时出错
【发布时间】:2012-01-19 18:16:54
【问题描述】:

我有一个简单的 winform,它只有一个 Microsoft.Office.Infopath.FormControl 对象作为子控件,基本上什么都不做。当我运行一个独立项目时,表单可以正常打开,但是从 asp 页面(Visual Studio 开发环境)调用时,我收到以下错误。

无法获取“FormControl”控件的窗口句柄。不支持无窗口 ActiveX 控件。

经过一番研究,我发现可能是因为 MTA 线程。我还将公寓状态设置为 STA,但仍然遇到相同的错误。

这是我正在进行的一个更大的项目所必需的,以将 infopath 作为 COM 对象打开。

请指教。

P.S -- 不需要示例代码,因为实际上根本没有代码。我在 asp 页面中所做的只是:

Form1 myform = new Form1();

myform.Show();

//或

myform.ShowDialog();

真的很紧急!!

【问题讨论】:

  • 这不是线程问题,根本不可能。网页甚至没有个线程。
  • 我认为重新运行是对的...因为不存在消息循环...无法通过网页打开...但是如果我在网络服务中使用它会打开吗?

标签: c# winforms asp-classic infopath


【解决方案1】:

您无法从 Web 项目中打开表单。没有消息循环,甚至没有桌面来显示它。您可以与服务器上的程序进行交互,但这通常是通过一个也不应该显示表单的 Windows 服务来完成的。你需要重新审视你的方法。

【讨论】:

  • 感谢您的快速回复...我有一个疑问...如果我使用 Web 服务,它会运行吗?
  • 目标是从网站启动 winform...winform 具有 infopath 编辑器环境...因此可以打开来自共享点的表单..so 当网站启动时和一个按钮单击...可以调用winform并可以处理表单...所有这些都在完成,因为未启用表单服务...P.S..我没有从Web服务打开exe...仅一个 Form.Show() 或 Form.Showdialog()...
  • 您是否处于可以决定机器设置的同构环境中
  • 如果你的意思是浏览网站的浏览器是否都启用了.Net框架,那么是的。我的桌面上有 IIS,它将部署网站以供内部网络使用
  • 你第一次做对了:这是不可能的。您可以在 Web 服务器上显示表单,但这与用户机器上显示的页面无关。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2017-09-14
  • 1970-01-01
  • 2016-11-13
  • 1970-01-01
  • 2023-01-27
  • 2015-02-25
相关资源
最近更新 更多