这是我的项目:
IWCFService.cs
[ServiceContract]
public interface IWCFService
{
[OperationContract]
void SetValue(string value);
[OperationContract]
bool SaveToDatabase();
}WCFService.cs
public class WCFService : IWCFService
{
public void SetValue(string value);
{
//Code insert value
}
public bool SaveToDatabase);
{
//Code save values to database
}
}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
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!");
}
}我可以将共享内存放在哪里(以设置来自多个客户端的值)?(在WCF服务或Windows服务中)
我可以从Windows Service调用SaveToDatabase()吗?(5秒后自动呼叫)
谢谢!
发布于 2015-07-23 14:40:47
Web服务方法调用应该被认为是完整的操作,所以如果您需要存储传递的值,您应该在WCFService.SetValue()中的某个地方调用SaveToDatabase,而不需要将SaveDatabase公开为web服务方法。
https://stackoverflow.com/questions/31579753
复制相似问题