【问题标题】:Call .net function from PHP page从 PHP 页面调用 .net 函数
【发布时间】:2011-02-23 23:52:12
【问题描述】:

我在 .net 代码中有这个功能:

public class StringGenerator
{
    public static string GenerateString(string hash)
    {
        return hash.GetHashCode();
    }
}

我希望能够从 PHP 页面调用它。知道怎么做吗?

编辑:查看 php 文档,http://www.php.net/manual/en/class.dotnet.php,我认为这是可能的。但我无法编写代码来找到这个 dll,即使使用强命名的 dll。 dll文件与php页面位于同一文件夹中。

【问题讨论】:

    标签: .net php com


    【解决方案1】:

    如果您使用的是 Windows,这篇文章可能会有所帮助:

    PHP and .NET

    在另一个平台上,您可以使用 Phalanger 之类的东西通过 PHP 访问 .NET 运行时。

    【讨论】:

      【解决方案2】:

      有几种方法可以在您的 PHP 安装中包含 .NET DLL(已经有充分的文档说明),其中大多数都非常复杂,而且当您将自己锁定为运行 IIS 作为您的网络服务器时,往往会带来更多的麻烦。 .

      最好的解决方案是编写可以部署在 IIS 服务器上的 Web 服务。这使您从 PHP 代码中的 .NET 依赖项中解放出来,从而在需要时将应用程序迁移到另一个环境变得无比容易。在 Visual Studio 中创建 Web 服务是一件轻而易举的事 - 只需启动一个新的 Web 服务项目,放入您的 DLL,VS 会自动生成一个 WSDL,您可以使用 PHP 的 SOAP 功能。

      去年我也遇到了同样的情况,我探索了这两种选择 - Web 服务绝对是更好、更灵活的选择。

      【讨论】:

      • 我在 .net 中有一个遗留函数,需要从 php 调用。它需要很快,所以我只想使用现有代码。目标 php 站点在 Windows 7 上。在迁移情况下,我们会将代码移植到 php。
      【解决方案3】:

      【讨论】:

      • 这些都不有助于从 PHP 调用 .NET 函数。
      • 因为 Mono 本身只运行 C# 和 VB.NET,而 Windows Azure 是一个云托管服务。两者都与 PHP 无关。
      • 使用 Mono 可以创建一个简单的 asxh 处理程序来处理 GenerateString 调用,然后从 PHP 调用此页面。这可以在同一 Linux 服务器上完成。使用 Azure,它将是 PHP 到 Web 服务调用,甚至更简单,它可以是相同样式的 ashx 处理程序调用。
      • 现在,作为答案,实际上会提供帮助。不过,我在链接列表中的任何地方都没有看到。
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2012-12-29
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-03-15
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多