尝试从 asp 页面打开 winform 时出错
Posted
技术标签:
【中文标题】尝试从 asp 页面打开 winform 时出错【英文标题】:Error when trying to open a winform from an asp page 【发布时间】: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();
真的很紧急!!
【问题讨论】:
这不是线程问题,根本不可能。网页甚至没有有个线程。 我认为重新运行是对的...因为不存在消息循环...无法通过网页打开...但是如果我在网络服务中使用它会打开吗? 【参考方案1】:您无法从 Web 项目中打开表单。没有消息循环,甚至没有桌面来显示它。您可以与服务器上的程序进行交互,但这通常是通过一个也不应该显示表单的 Windows 服务来完成的。你需要重新审视你的方法。
【讨论】:
感谢您的快速回复...我有一个疑问...如果我使用 Web 服务,它会运行吗? 目标是从网站启动 winform...winform 具有 infopath 编辑器环境...因此可以打开来自共享点的表单..so 当网站启动时和一个按钮单击...可以调用winform并可以处理表单...所有这些都在完成,因为未启用表单服务...P.S..我没有从Web服务打开exe...仅一个 Form.Show() 或 Form.Showdialog()... 您是否处于可以决定机器设置的同构环境中 如果你的意思是浏览网站的浏览器是否都启用了.Net框架,那么是的。我的桌面上有 IIS,它将部署网站以供内部网络使用 你第一次做对了:这是不可能的。您可以在 Web 服务器上显示表单,但这与用户机器上显示的页面无关。以上是关于尝试从 asp 页面打开 winform 时出错的主要内容,如果未能解决你的问题,请参考以下文章
C# WinForm Paypal 与 asmx Web 服务集成时出错
在 ASP.NET 中打开 Crystal Report 时出错
vs2005中 打开Winform 窗体设计界面时 总 出错
尝试使用 Google.Apis.Gmail 从 asp.net core web api 应用程序从谷歌工作区发送电子邮件时出错