[英]Can WCF Service Host call its service?
This is my project: 这是我的项目:
IWCFService.cs IWCFService.cs
[ServiceContract]
public interface IWCFService
{
[OperationContract]
void SetValue(string value);
[OperationContract]
bool SaveToDatabase();
}
WCFService.cs WCFService.cs
public class WCFService : IWCFService
{
public void SetValue(string value);
{
//Code insert value
}
public bool SaveToDatabase);
{
//Code save values to database
}
}
WindowsServiceHost.cs WindowsServiceHost.cs
public partial class WindowsServiceHost : ServiceBase
{
private ServiceHost _host;
public WindowsServiceHost()
{
InitializeComponent();
}
protected override void OnStart(string[] args)
{
_host = new ServiceHost(typeof (WCFService.WCFService));
_host.Open();
}
protected override void OnStop()
{
_host.Close();
}
}
frmClient.cs frmClient.cs
public partial class frmClient : Form
{
private WCFServiceClient _client = new WCFServiceClient();
public frmClient()
{
InitializeComponent();
}
private void button1_Click(object sender, EventArgs e)
{
_client.SetValue(39);
MessageBox.Show("Done!");
}
private void button2_Click(object sender, EventArgs e)
{
_client.SetValue(50);
MessageBox.Show("Done!");
}
private void button3_Click(object sender, EventArgs e)
{
_client.SaveToDatabase();
MessageBox.Show("Done!");
}
}
Where can I put shared memory (to set value from many clients)? 我可以在哪里放置共享内存(以设置许多客户端的价值)? (in WCF Service or Windows Service) (在WCF服务或Windows服务中)
Can I call SaveToDatabase() from Windows Service? 我可以从Windows Service调用SaveToDatabase()吗? (calling automatically after 5 seconds) (5秒后自动呼叫)
Thanks! 谢谢!
Web服务方法调用应视为完整操作,因此,如果需要存储传递的值,则应在WCFService.SetValue()
内的某个地方调用SaveToDatabase
并且无需将SaveDatabase
公开为Web服务方法。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.