Web Service应用程序在Web应用程序上引发事件

时间:2014-07-09 18:55:43

标签: c# web-services events asmx

我有2个项目,其中一个是WebApplication Project,另一个是简单的WebService应用程序。主项目引用了webservice项目,web服务应该在主项目上引发一个事件。

Web应用程序的主要类:

public class Manager
{
    Service service;

    public Manager()
    {
        service = new Service();
        service.Send += Receive;
    }

    public void Receive(object sender, SingleArgumentEventArgs<object> args)
    {
        var aVar = args.Argument;
    }
}

Web服务应用程序的服务:

public class Service : System.Web.Services.WebService
{
    public event WSEventHandler Send;

    [WebMethod(EnableSession = true)]
    public string HelloWorld(string a1, string a2 = null)
    {
        string value = a1 + a2;
        SingleArgumentEventArgs<object> args = new SingleArgumentEventArgs<object>(value);
        Send(this, args);
        return value;
    }
}

Web应用程序上的Global.asax:

protected void Application_Start(object sender, EventArgs e)
{
    Manager manager = new Manager();
}

当我将WebService应用程序设置为启动项目时,管理器不存在,因为从未调用Application_Start,并且该事件不会调用任何人。

当我将Web应用程序设置为启动项目时,该服务无法使用。

当我在服务器上发布它们时,在同一个文件夹中,就好像两个项目都尝试但无法进行交互。

是否有其他解决方案,然后将Web应用程序转换为WebService应用程序并使其在内部工作?

1 个答案:

答案 0 :(得分:0)

你不能这样做,你想看看ajax(如果用你的意思是浏览器)和双工wcf服务,如果你的意思是客户端到后端服务器。

基本上你不能提出这样的事件,但是有一种模式暴露了一个回调方法。