基于Windows服务的WCF

时间:2022-05-31 18:16:39
(1)创建WCF
代码示例:
[ServiceContract]
public interface ILimsDBService
{
[OperationContract]
int ExecuteSql(string strSql); 
[OperationContract]
DataTable GetDataTable(string strSql); 
[OperationContract]
DataSet GetDataSet(string strSql);
}
public class LimsDBService : ILimsDBService
{
public int ExecuteSql(string strSql)
{
OracleDBHelper dbo = new OracleDBHelper(ConfigInfo.LimsDbConnStr);
return dbo.ExecuteSql(strSql);
public DataTable GetDataTable(string strSql)
{
OracleDBHelper dbo = new OracleDBHelper(ConfigInfo.LimsDbConnStr);
return dbo.GetDataTable(strSql);
public DataSet GetDataSet(string strSql)
{
OracleDBHelper dbo = new OracleDBHelper(ConfigInfo.LimsDbConnStr);
return dbo.GetDataSet(strSql);
}
}
(2)创建Windows服务
代码示例:
public partial class LimsHsSysService : ServiceBase
{
ServiceHost LimsDBServiceHost = new ServiceHost(typeof(LimsDBService));
public LimsHsSysService()
{
InitializeComponent();
}
protected override void OnStart(string[] args)
{
LimsDBServiceHost.Open();
}
protected override void OnStop()
{
LimsDBServiceHost.Close();
}
}
(3)配置客户端
功能代码:
WSHttpBinding binding = new WSHttpBinding();
EndpointAddress address = new EndpointAddress("http://192.168.4.179:8732/Design_Time_Addresses/WcfLimsServer/LimsDBService/");
LimsDBServiceClient lims = new LimsDBService.LimsDBServiceClient(binding, address);
string sql = "select sample_id,material_type from nais_all_samples where sample_id=" + this.txtQuery.Text.Trim();
DataTable dt = lims.GetDataSet(sql).Tables[0];
this.gvData.DataSource = dt;
this.gvData.DataBind();