技术开发 频道

WebService发布本地磁盘信息


【IT168技术文档】

  今天有人问到如何在服务器A的WebApplication中访问服务器B的磁盘信息(文件Server)。

  方案很多啦:

  FTP协议访问、WebService发布磁盘信息、WCF构建等……

  随手就写了WebService的Demo,蛮放着……

  (未处理的东西多啦,特别是安全性的地方……)
///////////////////////code/////////////////////////////////////////////////// using System.ComponentModel; using System.Web.Services; using System.IO; using System; namespace WebServiceFileDirectory { /// <summary> /// Summary description for Service1 /// </summary> [WebService(Namespace = "http://volnet.cnblogs.com/")] [WebServiceBinding(ConformsTo = WsiProfiles.BasicProfile1_1)] [ToolboxItem(false)] // To allow this Web Service to be called from script, using ASP.NET AJAX, uncomment the following line. // [System.Web.Script.Services.ScriptService] public class ServiceFileDirectory : System.Web.Services.WebService { private static readonly string path = System.Configuration.ConfigurationManager.AppSettings["directory"]; [WebMethod] public string[] GetDirectories() { if (MakeSurePath() == true) { return Directory.GetDirectories(path); } return null; } [WebMethod] public string[] GetFiles() { if (MakeSurePath() == true) { return Directory.GetFiles(path); } return null; } private bool? isCorrectPath = null; /// <summary> /// 确保路径正确 /// </summary> /// <returns></returns> private bool? MakeSurePath() { try { if (isCorrectPath.HasValue == false) { if (!Directory.Exists(path)) { Directory.CreateDirectory(path); } isCorrectPath = true; } } catch { isCorrectPath = false; } finally { } return isCorrectPath; } } } //Tester: protected void btnGetFiles_Click(object sender, EventArgs e) { FileSystem.ServiceFileDirectory sf = new WebApplicationTester.FileSystem.ServiceFileDirectory(); string[] files = sf.GetFiles(); string result= string.Empty; foreach (string str in files) { result += str + "<BR>"; } this.Response.Write(result); }
0
相关文章