从 webapp(php 或其他)快速调用 C# 代码

Posted

技术标签:

【中文标题】从 webapp(php 或其他)快速调用 C# 代码【英文标题】:call C# code quickly from a webapp(php or something else) 【发布时间】:2010-11-07 02:30:14 【问题描述】:

我发现自己遇到了问题。我的主要 webapp 是用 asp.net 编写的,我使用 mono+apache2 来托管它。当使用单声道托管文件时,mime 会搞砸,所以我需要用 php 或其他语言来执行此操作。但是,查找文件路径需要一些逻辑。有一些安静的转义和过滤器通过。

从另一种语言调用 C# 代码的快速方法是什么?单声道进程将在同一个盒子上运行,所以我想我可以发送一条消息并让它发回或响应它,而不是启动一个 exec 并读取标准输出(我听说启动一个进程很昂贵,这是为什么通过exe生成html不是一个好主意)

无论如何,这个盒子是 debian(我认为是 lenny),提供 perl、python 和 php。

【问题讨论】:

你能定义“快”吗?您可以使用命名管道之类的东西来利用两个进程之间相当快速的通信。 @vcsjones:我忘记了名称管道是如何工作的(不过我可以在 .net 中快速弄清楚)。我也不知道如何在 python/perl/php 等中做到这一点。如果你能给我一个简单的例子,那就太好了。 -edit- 实际上显然它很难使用命名管道,所以也许套接字更好。 ***.com/questions/713660/… 为什么不解决 mime 问题,而不是在 PHP 中混入一些东西? @Albin Sunnanbo:我确实通过 asp 修复了它,但是 seek 和所有这些都存在问题。我忘了提。 Mono 会破坏 apache 的响应,并且在 mono 上运行时似乎没有应用许多过滤器 【参考方案1】:

两个选项,可能还有更多。

    在 Windows 上启动进程的成本很高。在 linux 上,这个成本得到了极大的缓解,在这里它是一个可行的选择。这是顺便说一句。 “管道”评论是什么意思。您将 exe 的输出“管道”到您的 PHP 页面中;

    使用 HTTP。如果您只是使用 PHP 来“修复”问题,您仍然可以通过 HTTP 从 apache 服务器内部检索内容,然后使用 PHP 进行转换。 PHP 站点将成为某种代理。

【讨论】:

我花了一点时间才弄明白你所说的#2 是什么意思。我不确定如何将请求代理到单声道,但问题是在文件系统上查找文件的代码。我仍然不知道如何从 php 端获取它。但是如果它真正的 linux 这样做的话,#1 听起来还不错 关于#2:你不能只从PHP页面向apache服务器请求网页吗?或者您在弄清楚网页的路径应该是什么方面有问题? 找出路径是问题所在。在 php 中重写逻辑可能并不难,但我必须查找很多。问题还在于支持文件中的搜索(ogg)。我将如何在 php 中做到这一点? 这很难。随机访问文件是一件很难的事情,最好留给网络服务器。我知道在 PHP 中实现它可能是可能的,但老实说我不知道​​从哪里开始。

以上是关于从 webapp(php 或其他)快速调用 C# 代码的主要内容,如果未能解决你的问题,请参考以下文章

从 C# Windows 窗体调用 PHP Web 服务

如何使用 C# 从 C++ 应用程序获取调用堆栈?

从 C# 调用非托管 DLL,将结构作为参数传递

Xamarin C# - 从其他类调用异步方法

PHP(或其他 linux 友好)等效于 .Net System.Xml.Linq

如何使用 pinvoke 将图像从 c 或 c++ 发送到 C#