Windows窗体应用程序中的主机WCF

时间:2013-05-25 13:53:31

标签: asp.net winforms wcf web-services

我已经创建了一个WCF服务(DLL文件),我可以在解决方案中从我的“相邻”项目添加服务引用时使用它。

我希望在Windows窗体应用程序中使此WCF服务可访问/托管它。我需要从远程位置使用它,并需要通过URI访问它。 (IP地址:端口!?)

我不确定的是,如何在Windows窗体应用程序中托管它?我已经做了很多例子,但我不能完全落后于需要做的事情......

我是否将DLL文件引用添加到新的Windows窗体应用程序,并以某种方式“shell”DLL文件? 我可以将WCF服务项目类型更改为Windows窗体项目吗?需要在这里发生什么?

我很感激一些我可以建立的基本例子。我不喜欢绑定,但是我现在将从另一个远程Windows窗体应用程序访问它,最终它将被远程ASP.NET Web应用程序访问/使用。

目前,我需要开展工作:

远程Windows窗体应用程序< ---> (服务器)WCF服务(托管在自己的Windows窗体应用程序中)

我该怎么做?

3 个答案:

答案 0 :(得分:1)

如果我理解正确,而不是ASP.NET,听起来你正在寻找自托管。请参阅 How to: Host a WCF Service in a Managed Application

您的服务可以保留在自己的类库中;您只需要从Windows窗体项目中实例化它。例如,将Program.Main()复制到Program.cs中,替换......

Console.WriteLine("The service is ready at {0}", baseAddress);
Console.WriteLine("Press <Enter> to stop the service.");
Console.ReadLine();

...与......一起排队。

Application.EnableVisualStyles();
Application.SetCompatibleTextRenderingDefault(false);
Application.Run(new Form1());

...通常包含在Windows窗体项目中。

答案 1 :(得分:1)

答案 2 :(得分:1)

试试这个......

将已创建的WCF库的DLL文件引用添加到新的Windows应用程序项目中,对于任何事件,例如单击按钮,请尝试以下代码。

ServiceHost sh = new ServiceHost("http://localhost:9092/MyService")
sh.open();