在访问者CPU上运行网页C#功能?

时间:2012-02-09 13:46:39

标签: c# javascript performance loops

从用户CPU上的C#网页运行耗时功能而不是在Web服务器上运行它有什么好方法?是否有可能在本地运行C#函数或者我必须用JavaScript编写函数吗?函数本身并不是秘密,但我更希望输入和输出对用户保密。该解决方案不应要求用户下载任何内容。

此函数使用来自数据库+用户输入的数据,当它完成时,它将输出写入数据库。

函数最佳情况是~1s,平均~30s,最差~10min(对于每个用户),因此不能在Web服务器上运行此函数。

5 个答案:

答案 0 :(得分:1)

可以通过

来实现这一点
  • 使用JavaScript编写函数
  • 将C#源编译为JavaScript(不在人迹罕至的地方)
  • 在silverlight中运行C#代码(完成并再次完成,记住Java Applets?同样的科学)

但是,你无法真正保密数据。

现在,如何解决这个问题......您将需要一个Web服务来向您的silverlight组件提供数据,另一个用于接受计算结果。你知道,我真的不明白为什么其他人都认为这是不可能的......

至于数据保密......尽管你 应使用安全通信层来获取数据并发布<,但你可以做的最好是混淆/ em>结果返回,最终用户计算机上的内容最终将打开供用户检查。如果您对代码使用混淆技术,这将使逆向工程变得更加难以加密数据有效载荷的加密/解密方案,但您玩的游戏与游戏开发者/游戏破解者基本相同......

就个人而言,我会用JavaScript编写客户端内容。机会是,你想要做的更多的是算法事物而不是库事物,所以移植到js应该不难实现。

答案 1 :(得分:0)

您不能也不应该在用户的计算机上运行任意cs代码。你也无法真正在客户端的javascript中运行一个长期存在的进程。用户与该页面的互动将被阻止,如果他们导航到另一个页面,它将停止。

您应该做的是编写Windows服务以在后台运行这些任务。有一个队列表,您可以从Web端保存输入数据,然后有一个服务轮询表中的工作并处理输入数据。

答案 2 :(得分:0)

当您进入网页时,无法在客户端计算机上执行任何C#代码。您的假设是正确的,您需要在javascript中编写它以在客户端上执行它。

答案 3 :(得分:0)

这不起作用。 Web服务器进行处理。除非您正在进行分布式计算和类似的东西,否则它不适用于客户端。客户需要下载软件来处理东西。网页是网页。文本。

答案 4 :(得分:0)

您可以在客户端上运行的唯一代码是js。 话虽如此,如果您涉及敏感信息,您绝对不希望在客户端上运行您的功能。