1

当我收到“请求”时,我必须调用一个复杂的 .dll C# 库的方法。由于我不想对网络部分(套接字、协议等)进行编程,因此我正在考虑使用现有的 Web 服务器(IIS 或 Apache)来处理这部分(并使用 HTTP 作为协议)。

  1. 是否可以将 .dll 加载到内存中并从 Web 服务器调用它的方法?怎么做?
  2. 如果是,那么在 Windows、Apache 或 Windows 上使用 IIS 还是在 Linux 上使用 Apache 更好?
  3. 是否必须使用 C#/ASP 调用 C# .dll 的此方法?或者它可以与PHP一起使用吗?

它必须具有很强的可扩展性,并且 .dll 库使用.NET Framework。

当然,我正在考虑execPHP 中的函数,但这会为每个请求一次又一次地启动一个 C# 程序,这不是很好。我想在内存中加载一次 C# .dll,如果可能的话,让它直接在 Web 服务器上运行,这样只有在我收到特定的 HTTP 请求时才会“调用”一个方法。

我的问题与这个有相似之处,但我不相信我们的问题是相同的。

4

1 回答 1

2

是否可以将 .dll 加载到内存中并从 Web 服务器调用它的方法?怎么做?

是的,例如通过使用 WCF 或 ASP.NET Web API 围绕它编写一个服务层。鉴于 SOAP 服务和客户端的古怪(至少可以说)互操作,我会选择后者。

然后,您可以通过 PHP 的 cURL 或任何其他适用的方法调用您的 SOAP/REST/giveitaname 服务,然后您的 C# 服务将调用 DLL 中的代码(这部分您必须构建)。

您可以在 IIS 中轻松托管这两种类型的项目,从而可以通过 HTTP 访问它。

于 2013-07-12T14:40:42.570 回答