在当前正在运行的控制台应用程序中调用方法。

时间:2011-09-07 13:51:04

标签: c# php console-application communication

3 个答案:

答案 0 :(得分:1)

也许您的控制台应用程序可以轮询某个文件的目录,并对此作出反应。

然后你的php应用程序只需要创建该文件,控制台应用程序应该注意它并做你想做的任何事情。我不确定你想做什么。

答案 1 :(得分:1)

你可以像这样创建一个服务:

[ServiceContract]
public interface IService
{
    [OperationContract]
    [WebInvoke(
      Method = "GET",
      UriTemplate = "/magic")]
    void MagicMethod();

}

这样的服务实现:

public class Service : IService
{
    public void MagicMethod()
    {
        //magic here
    }
}

启动HTTP服务应该如下所示:

WebServiceHost host = new WebServiceHost(typeof(Service), new Uri("http://127.0.0.1:8080"))
ServiceEndpoint ep = host.AddServiceEndpoint(typeof(IService), new WebHttpBinding(), "");
ServiceDebugBehavior stp = host.Description.Behaviors.Find<ServiceDebugBehavior>();

stp.HttpHelpPageEnabled = false;
host.Open();  

这将在端口8080上启动HTTP服务器。 然后你可以向'http:// localhost:8080 / magic'发出HTTP Get请求来调用方法调用。

答案 2 :(得分:0)

我会考虑使用WCF。您的C#应用​​程序将托管WCF服务,然后您的PHP应用程序可以调用它,我相信PHP5附带一个SOAP库,这应该使这相对简单。您编写的任何其他应用程序都可以轻松调用,特别是如果它们是用.NET编写的。

我认为COM可以正常工作,但我喜欢WCF的可扩展性,就好像你必须最终将这些应用程序移动到不同的服务器上一样,除了URL之外你不需要改变任何东西。

有一个很好的例子on this blog。如果你使用PHP5它应该是一个轻而易举的,如果你不得不使用4那么它仍然是可能的,但需要更多的腿部工作。