我正在学习 wcf 并研究一个示例。在此,我为 wcf 服务和 2 个用于托管服务和另一个客户端应用程序的 Windows 应用程序构建了一个 dll。在托管 appn 中,我无法在 servicehost.open 方法之后执行代码。我只是想知道发生了什么。请帮忙。
托管应用程序中的代码如下:
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Text;
using System.Windows.Forms;
using System.ServiceModel;
using System.ServiceModel.Description;
using WCFService;
namespace WCFServiceHost
{
public partial class Form1 : Form
{
ServiceHost sh = null;
public Form1()
{
InitializeComponent();
}
private void Form1_Load(object sender, EventArgs e)
{
Uri tcpa = new Uri("net.tcp://localhost:8000/TcpBinding");
sh = new ServiceHost(typeof(ServiceClass), tcpa);
NetTcpBinding tcpb = new NetTcpBinding();
ServiceMetadataBehavior mBehave = new ServiceMetadataBehavior();
sh.Description.Behaviors.Add(mBehave);
sh.AddServiceEndpoint(typeof(IMetadataExchange),
MetadataExchangeBindings.CreateMexTcpBinding(), "mex");
sh.AddServiceEndpoint(typeof(IServiceClass), tcpb, tcpa);
sh.Open();
**//This line is not executed
label1.Text = "Service Running";
//This line is not executed**
}
private void Form1_FormClosing(object sender, FormClosingEventArgs e)
{
sh.Close();
}
}
}
另一个帮助:我们如何在 Visual Studio 2005 中添加服务参考。