【问题标题】:Access a COM Object on Client Machine for Intranet Application为 Intranet 应用程序访问客户端计算机上的 COM 对象
【发布时间】:2012-10-07 05:15:15
【问题描述】:

我们有一个第 3 方软件,我想通过他们提供的 COM 对象应用一些自动化。到目前为止,我一直在使用 Windows 窗体应用程序,但我真的很想开始为公司开发一个 Intranet 站点,这是他们目前所缺乏的。

那么这是可能的吗?您是否能够在 Intranet 情况下通过 ASP.NET 应用程序(MVC3 或 4)访问 COM 对象?

我看过简单地让服务器通过安装在服务器上的软件来控制应用程序,但是应用程序使用我们的 Active Directory 来控制访问,它们没有提供传递凭据的好方法,所以除非我遗漏了一些东西,否则我需要一个拥有任何人都需要的所有访问权限的用户,然后通过代码强制执行限制,这足以让我继续使用 Windows Forms 应用程序而不是 Intranet 应用程序。

编辑:如果可能的话,从 javascript 访问 COM 对象也是一种选择。

【问题讨论】:

  • 你知道对象是使用MTA还是STA线程模型?
  • 我不知道。实际上我以前从未听说过。
  • 在查看 MSDN 后,它会是单线程与多线程。我会假设它是多重的,但我不确定如何确定。当您无权访问源代码时,有没有办法找到它?
  • 有时间我会试着研究一下,实际上我不确定如何轻松检查:)
  • @JoachimIsaksson 另外,虽然这是很好的信息,但这是否会影响访问对象的能力?

标签: .net asp.net-mvc-3 com asp.net-mvc-4 intranet


【解决方案1】:

我使用以下 javascript 代码在客户端计算机上启动 Excel 实例。 它适用于 Internet Explorer。也许你可以这样做 你的对象。

var excelApp, excelFile;
  function initExcel(filename)
  {
    excelApp = new ActiveXObject("Excel.Application");
    excelFile = excelApp.Workbooks.Open(filename);
  }

【讨论】:

  • +1 表示 A 解决方案,但我不希望它依赖于特定的浏览器。 (尤其是如果那个浏览器是 IE 的话:))
  • 干杯,这看起来可能是一个更好的解决方案? asp.net-informations.com/excel/asp-excel.htm(或者可能不是——我忘了​​你想在客户端机器上做)也许你可以研究一下 RPC——似乎有很多可用的信息——啊!它被称为“.NET Remoting” - en.wikipedia.org/wiki/.NET_Remoting
  • 对于未来的访问者...这不是我选择的解决方案,因为如果要在浏览器中完成,我需要一个更加浏览器中立的解决方案,但这是一个解决方案。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2015-02-06
  • 1970-01-01
相关资源
最近更新 更多