.net 将Silverlight连接到本地计算机COM端口

.net 将Silverlight连接到本地计算机COM端口,.net,silverlight,serial-port,.net,Silverlight,Serial Port,我一直在到处寻找让我的silverlight应用程序与本地计算机上的COM端口通信的方法。有没有人能够让Silverlight成功连接到本地计算机的COM端口?如果是这样的话,您能给我指一下文档吗。这是Silverlight无法做到的 为什么不使用标准的.NET桌面应用程序呢?如果您需要通过web轻松部署,只需单击一次即可进行部署。本地计算机是否指silverlight客户端应用程序运行的计算机?Silverlight运行在一个安全沙箱中,您很难像这样连接到硬件资源。无法访问计算机资源,但您可以

我一直在到处寻找让我的silverlight应用程序与本地计算机上的COM端口通信的方法。有没有人能够让Silverlight成功连接到本地计算机的COM端口?如果是这样的话,您能给我指一下文档吗。

这是Silverlight无法做到的


为什么不使用标准的.NET桌面应用程序呢?如果您需要通过web轻松部署,只需单击一次即可进行部署。

本地计算机是否指silverlight客户端应用程序运行的计算机?Silverlight运行在一个安全沙箱中,您很难像这样连接到硬件资源。

无法访问计算机资源,但您可以与套接字通信。因此,您可以让用户安装一个在端口上侦听并与COM端口通信的应用程序

为什么要尝试与COM端口通信?如果您正在寻找网络摄像头支持,请看一下Jonas的hack,它使用Flash获取网络摄像头输入: 乔恩


我实际上是在尝试从Silverlight读取我的GPS。我有一个有趣的概念,我想尝试一下,但我试图去一个零安装足迹

我认为大家总结得很好——Silverlight处于一个狭小的沙箱中,您将无法访问COM端口或其他本地资源

因此,让我们开始考虑替代方案:

  • 使用ClickOnce和一个完整的.NET应用程序-使您能够轻松部署和部署,您将拥有.NET framework的全部功能
  • 使用请求一些额外权限的XBAP(浏览器部署的WPF)。将位于浏览器内,但仅在安装了.NET 3.0/3.5的Windows计算机上运行
  • 编写一个ActiveX控件,与GPS设备对话并公开API。然后使用JavaScript使用此API并与Silverlight的JavaScript代码交互。这将为您提供一个浏览器内GPS应用程序,但您的用户必须安装额外的GPS ActiveX组件
干杯,
Jonas

您可以通过打开Silverlight控件到本地套接字的套接字连接来完成此操作,intern具有COM端口访问权Silverlight 4使您能够与COM(ActiveX)通信。我写了一篇关于如何与支持串行端口通信的COM库通信的博客文章


请注意,上面提到的ActiveXperts对象是商业对象。

如果希望应用程序在Windows和Mac上运行,该怎么办?Silverlight是一个很好的解决方案,因为它同时在这两个平台上运行。如果您必须编写WPF应用程序或ActiveX控件等,这将再次将您绑定到Windows。

您仍然可以在浏览器外运行它,并使用类似的包装器

(我写的)

问候,,
Paul

您可以将Silverlight 5连接到本地通信端口以及任何其他本地资源,但只有当Silverlight应用程序在Windows(非Mac)下运行,并且在Internet Explorer中运行OOB(浏览器外)或浏览器内时,才可以

实现这一点的方法是创建一个经典的COM自动化组件,并以完全信任的方式运行应用程序。您可以设置一个注册表项,以允许Silverlight 5应用程序在浏览器中以完全信任的方式运行,但必须对应用程序进行签名,并且必须将公钥导入本地计算机上的受信任发布服务器

完成后,Silverlight支持AutoActionFactory,允许您访问本地注册的com自动化对象。我们广泛使用这个特性;它非常强大。在本例中,我们创建了一个COM组件,该组件允许访问SerialPort对象,并为其提供了一个返回所有可用端口列表的方法

If AutomationFactory.IsAvailable Then
      SilPort = AutomationFactory.CreateObject("SilverPort.Ports")
      Dim AllPorts() As String
      AllPorts = SilPort.GetPortNames()
      ...
End If

因为我想要一个零安装的场景。你应该仔细研究一下点击一次。它几乎是“零安装”。你可以直接从网站上一键启动这个应用程序。其实不是一键。他们应该叫它Click-one-Or-Maybe-Two-Three-Times。你可以把socket服务器构建成一个普通的winforms或控制台应用程序,让你可以在windows和mac上运行它