0
我正在开发VS2008中的wcf应用程序。我想将该WCF服务作为窗口服务托管。但我也想将该服务公开为.asmx(web服务)。将WCF服务公开为asmx(网络服务)并托管在窗口服务
可以吗?有什么方法可以将.asmx(web服务)公开为wcf服务,但需要在窗口服务中进行托管。
我正在开发VS2008中的wcf应用程序。我想将该WCF服务作为窗口服务托管。但我也想将该服务公开为.asmx(web服务)。将WCF服务公开为asmx(网络服务)并托管在窗口服务
可以吗?有什么方法可以将.asmx(web服务)公开为wcf服务,但需要在窗口服务中进行托管。
当作为Windows服务托管,您可以为您服务的基地址设置为你想要的任何URL,例如:
(假设你已经有一个名为“yourServiceClass”实现服务合同类)
public class ExampleWindowsService : ServiceBase
{
public ServiceHost host = null;
public static void Main()
{
ServiceBase.Run(new ExampleWindowsService());
}
protected override void OnStart(string[] args)
{
if (host != null)
{
host.Close();
}
Uri baseAddress = new Uri("http://localhost:80/yourservice.asmx");
host = new ServiceHost(typeof(yourServiceClass), baseAddress);
host.Open();
Console.WriteLine("Service hosted ...");
}
}
然后,您可以通过编程或配置文件添加所需的端点和行为。查看here以查找有关如何将WCF服务实现为Windows服务的更多信息。
你是什么意思,暴露为asmx?文件扩展名应该没有关系。 –
我认为他的意思是与你对asmx服务期望的绑定和行为相同。 –
@BuhBuh:今天早上我读头脑太早了。 –