如何在本地网络上正确执行C#文件


How to properly execute C# file over local network?

概述

C#文件-用户电脑
PHP服务器-托管应用程序的网页

本地网络上的服务器和用户PC

我有一个c#文件,可以从USB秤上读取重量。我该如何触发这个文件运行,以便它进入我的程序。问题是我使用PHP来托管我们的网页/应用程序,所以它不是在客户端运行的,而且规模没有连接到服务器,而是连接到客户端PC。

C#脚本必须在客户端上才能读取刻度,那么我该如何触发这种情况呢?

这有可能吗?如果没有,还有什么更好的方法?


重要编辑
通过让PHP和C#使用TCP套接字,我可以在需要的时候运行Scale Script(C#)。

C#会监听PHP发送一些东西,当它这样做时,它会读取刻度并将这些信息发送回PHP,因为PHP正在监听响应。混合了一些Ajax,它在web浏览器中进行更新。

感谢Chris,因为他在回答我的问题时最有帮助。

听起来你真正想要的是客户端应用程序向网站本身提交数据,而最合适的方法可能是从服务器公开web服务。

该服务应该接受重量数据,以及某种客户密钥或其他什么,以便在服务器端正确关联记录。我个人从未用PHP创建过web服务,因此我无法就其实现提供任何建议,但一旦您公开了C#客户端应用程序的元数据(假设您使用SOAP),就将其连接到web服务是相当琐碎的。

您不能以每次都能在每个浏览器中工作的方式从网页启动C#应用程序。但是,你可以有一些变通办法:

  • 使用ActiveX组件读取客户端中的数据并将其上载到服务器。最大的缺点是它只能在Internet Explorer中工作
  • 使用在提升模式(v4)下运行的Silverlight客户端应用程序,并将数据上载到服务器
  • 请您的客户端下载应用程序(您编写的C#应用程序)并运行它——该应用程序将把数据上传到您的服务器

希望这能有所帮助。

C#不是一种脚本语言,它是一种编译成可执行二进制文件或库的语言。您将无法通过网站在客户端的计算机上执行C#代码,因为C#代码需要编译才能运行。

大概你真正想要的是通过你的网站在客户端的机器上执行你编译的C#二进制文件。你不可能轻易做到这一点。有很多安全措施可以防止浏览器在您的计算机上运行程序。可能有一些方法可以通过使用插件(如ActiveX)绕过这些安全措施,但这不是一句话。

编辑:我认为你需要退一步,从广义上思考你想做什么。你正试图创建一个可以从用户的USB端口读取信息的网站。这是浏览器设计用来防止的事情,这是有充分理由的。我不希望随机网站能够在没有我明确许可的情况下访问外围硬件。如果你想让这个网站按你期望的方式运行,你必须认真考虑安全问题。您需要某种客户端代码(ActiveX、Silverlight…),并且用户需要明确地授予权限才能实现这一切。这并不容易,也不会是自动的。我很高兴这是真的。