我需要一个C#NET Server应用程序和C#NET客户端应用程序。使用服务器的ASP Web界面,我需要能够告诉特定的客户端应用程序执行诸如DownloadFile(string url),CreateWindowsService()等功能。
我会在服务器上执行以下操作并将它们暴露给客户端应用程序吗?
[ServiceContract]
public interface IFunctions
{
[OperationContract]
void DownloadFile(string url);
void CreateWindowsService();
void OtherFunctions();
}
从我读过的内容来看,这听起来像我在服务器上定义/编码函数,然后客户端应用程序实际上运行的函数就好像它被编码到它们中一样?
另一方面,在阅读了绑定的描述之后,听起来我应该在这个项目中使用Tcp吗?每个客户端应用程序都将在一台单独的机器上。
答案 0 :(得分:0)
不,操作在服务器上运行,操作结果(如果不是无效)以序列化格式发送到客户端。
修改强>
向客户端添加WCF引用时,将使用与服务器协定具有相同签名的方法生成代理。每个代理方法以序列化形式对其输入参数进行编码,并将它们发送到服务器。服务器解码请求,在服务器上执行方法并返回答案。客户端将答案解码为常规c#类型,最后从代理方法返回。