我有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应用程序并使其在内部工作?
答案 0 :(得分:0)
你不能这样做,你想看看ajax(如果用你的意思是浏览器)和双工wcf服务,如果你的意思是客户端到后端服务器。
基本上你不能提出这样的事件,但是有一种模式暴露了一个回调方法。