通过提供“文件系统”。 .NET WebService

时间:2009-03-27 18:20:48

标签: .net web-services

我需要生成一个像客户端一样查看文件系统的Web服务。我需要客户能够:

  • 加载文件
  • 保存文件
  • 访问有关文件的元数据
  • 使用用户名/密码

我不想仅托管静态内容的原因是:

  • 部分内容将是虚拟的。
  • 某些元数据将是非标准数据。
  • 我需要添加自定义挂钩,访问控制和错误处理。
  • 有计划对线上数据进行一些处理/过滤,因此我需要能够在两端添加自定义代码。

如果它有任何区别,所有内容属于同一类型,并在加载/保存时反序列化/序列化。

有没有一种标准的方法可以做到这一点?有没有更好的方法呢?


编辑:我有一些bean在玩Visual Web Developer,它允许远程调用(通过SOAP,它认为)给出这样的代码:

public class HelloWorld : System.Web.Services.WebService
{
    [WebMethod]
    public string HelloWorldMethod(int x)
    {
        return "Hello World" + " " + (x * 2).ToString();
    }
}

这大概是我想要的90%。其余的只有一个实例服务整个子目录(并获取路径),让IIS处理我的所有安全性和其他一些基本要素。

3 个答案:

答案 0 :(得分:1)

我建议检查WCF而不是.NET webservices - 它为您提供更多灵活性,更多选项,例如“可靠的会话”(将处理短暂的网络打嗝),它可以让您轻松支持大型消息的MTOM编码,甚至支持流式传输,如果您打算提供服务,例如视频或其他内容。

马克

答案 1 :(得分:0)

可能值得研究WebDav协议,其中包含与元数据相关的扩展。不确定这是否是webservice的意思,如果你的意思是SOAP,那么你可以遵循协议,但将其包装在SOAP中。

答案 2 :(得分:0)

您是否考虑过实施WebDAV甚至FTP等协议?已经设计了文件服务和文件传输协议。即使你不能使用其中一个的第三方实现,你至少可以实现协议并避免重新发明那个特定的轮子。

如有必要,您可以将其中一个协议转换为Web服务界面 - 但至少您可以在设计过程中选择完整的协议。