zoukankan      html  css  js  c++  java
  • WCF实现客户端自动更新

    IServiceUpdate

     1 using System.IO;
     2 using System.ServiceModel;
     3 using System.ServiceModel.Web;
     4 
     5 namespace ServiceUpdater
     6 {
     7     // 注意: 使用“重构”菜单上的“重命名”命令,可以同时更改代码和配置文件中的接口名“IServiceUpdate”。
     8     [ServiceContract]
     9     public interface IServiceUpdate
    10     {
    11         [OperationContract, WebInvoke(Method = "GET", UriTemplate = "SyncTool/{fileName}")]
    12         Stream SyncTool(string fileName);
    13 
    14         [OperationContract, WebInvoke(Method = "POST", RequestFormat = WebMessageFormat.Json)]
    15         Stream DownloadFile(PostData postData);
    16     }
    17 
    18     public class PostData
    19     {
    20         public string CustomerCode { get; set; }
    21         public string Token { get; set; }
    22         public string Mac { get; set; }
    23         public string Filename { get; set; }
    24     }
    25 }

    ServiceUpdate

     1 using System;
     2 using System.Collections.Generic;
     3 using System.IO;
     4 using System.Linq;
     5 using System.Runtime.Serialization;
     6 using System.ServiceModel;
     7 using System.ServiceModel.Web;
     8 using System.Text;
     9 using log4net;
    10 
    11 namespace ServiceUpdater
    12 {
    13     // 注意: 使用“重构”菜单上的“重命名”命令,可以同时更改代码和配置文件中的类名“ServiceUpdate”。
    14     public class ServiceUpdate : IServiceUpdate
    15     {
    16         public Stream SyncTool(string fileName)
    17         {
    18             string basePath = AppDomain.CurrentDomain.BaseDirectory + "Release\SyncTool\";
    19             string downloadFileName = basePath + fileName;
    20             if (File.Exists(downloadFileName) && WebOperationContext.Current != null)
    21             {
    22                 var fileExt = Path.GetExtension(downloadFileName);
    23                 switch (fileExt.ToLower())
    24                 {
    25                     case ".js":
    26                         WebOperationContext.Current.OutgoingResponse.ContentType = "text/javascript";
    27                         break;
    28                     case ".css":
    29                         WebOperationContext.Current.OutgoingResponse.ContentType = "text/css";
    30                         break;
    31                     case ".html":
    32                     case ".htm":
    33                         WebOperationContext.Current.OutgoingResponse.ContentType = "text/html";
    34                         break;
    35                 }
    36                 LogManager.GetLogger(this.GetType()).Info("File downloaded = " + downloadFileName);
    37                 return File.OpenRead(downloadFileName);
    38             }
    39             return null;
    40         }
    41 
    42         public Stream DownloadFile(PostData postData)
    43         {
    44             if (postData != null
    45                 && !string.IsNullOrEmpty(postData.CustomerCode)
    46                 && !string.IsNullOrEmpty(postData.Token)
    47                 && !string.IsNullOrEmpty(postData.Mac)
    48                 && !string.IsNullOrEmpty(postData.Filename))
    49             {
    50                 string downFilename = AppDomain.CurrentDomain.BaseDirectory + "Release\" + postData.CustomerCode + "\" + postData.Filename;
    51                 if (File.Exists(downFilename))
    52                 {
    53                     LogManager.GetLogger(this.GetType()).Info(
    54                         "File download = " + downFilename
    55                         + Environment.NewLine + "CustomerCode = " + postData.CustomerCode
    56                         + Environment.NewLine + "Token = " + postData.Token
    57                         + Environment.NewLine + "Mac = " + postData.Mac);
    58                     return File.OpenRead(downFilename);
    59                 }
    60             }
    61             return null;
    62         }
    63     }
    64 }
  • 相关阅读:
    HDU-4248 A Famous Stone Collector 组合数学 DP
    HDU
    暑期训练1 Gym
    暑期训练1 Gym-102623L Lottery Tickets 模拟 贪心构造
    暑期训练2 Gym
    poj-1011 sticks(搜索题)
    hdu-2553 N皇后问题(搜索题)
    poj-2236 wireless network(并查集)
    poj-1700 crossing river(贪心题)
    poj-3278 catch that cow(搜索题)
  • 原文地址:https://www.cnblogs.com/jonney-wang/p/5724184.html
Copyright © 2011-2022 走看看