在Web应用程序中的客户端运行C#代码

时间:2010-01-07 08:09:35

标签: c# asp.net silverlight

我的服务器上的代码非常好用。它必须在远程站点上抓取几页才能正常工作。我知道有些用户可能想滥用我的网站,所以不是运行使用webclient和HttpRequest的代码,而是希望它在客户端运行,所以如果它被滥用,用户可能会将他的IP列入黑名单而不是我的服务器。我怎么能运行这个代码客户端?我认为silverlight可能是一个解决方案,但我对此一无所知。

3 个答案:

答案 0 :(得分:2)

是的,Silverlight是一种解决方案,可让您在客户端计算机上运行有限的.NET代码子集。只需谷歌获取silverlight limitations即可获得有关可用内容的更多信息。

我不知道您尝试实施的方案是什么,以及您是否需要实时结果,但我想缓存抓取结果可能是一个好主意?

如果您在web scraping之后,您应该能够找到适合您的几个JavaScript框架。

答案 1 :(得分:0)

我认为您的选项是Silverlight或某些桌面应用

除非可能有jquery库或其他客户端脚本语言可以做同样的事情

答案 2 :(得分:0)

这是一个有趣的请求(没有双关语)。如果您确实使用Silverlight,那么可能不是将逻辑移植到它上面,而是在其中创建一个简单的Proxy类,它接收来自您的服务器应用程序的请求并将其转发以进行脏工作。与传入的响应相同:让Silverlight代理将其发送回服务器应用程序。

通过这种方式,您可以选择在某些情况下通过Silverlight代理运行服务器应用程序,并在其他方案中自行运行(无代理)。无论运行哪个浏览器,silverlight插件都应提供一致的API来编程。

如果在Web浏览器中使用代理解决方案,您甚至可以完全跳过Silverlight并使用JavaScript / AJAX调用。当然这种事情通常充满了浏览器兼容性问题,肯定会是一个模糊的推/拉实现,但我认为JavaScript可以访问域和URL(在某些情况下使用)不限于它来源于。

如果Silverlight安全性阻碍您可能会考虑其他类型的可编程(图灵完整)浏览器插件,如Java,Flash等。如果内存服务正确,对于Java插件,它只能通过网络与它起源于。这种安全性对于您的爬行需求来说过于严格。