Web和C#.dll之间的交互

时间:2013-07-12 14:12:40

标签: c# php apache iis dll

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

  1. 是否可以在内存中加载.dll并从Web服务器调用它的方法? 如何这样做?
  2. 如果是,最好在Windows,Apache或Windows上使用IIS,还是在Linux上使用Apache?
  3. 是否必须使用C#/ ASP调用C#.dll的此方法?或者可以使用PHP吗?
  4. 必须非常可扩展,.dll库使用 .NET 框架。

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

    我的问题与this one有相似之处,但我不相信我们的问题是一样的。

1 个答案:

答案 0 :(得分:2)

  

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

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

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

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