Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/.net/23.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
.net 提出一个“建议”;“文件系统”;通过网络服务_.net_Web Services - Fatal编程技术网

.net 提出一个“建议”;“文件系统”;通过网络服务

.net 提出一个“建议”;“文件系统”;通过网络服务,.net,web-services,.net,Web Services,我需要生成一个在客户端看起来像文件系统的web服务。我需要客户能够: 加载文件 保存文件 访问有关文件的元数据 使用用户名/密码 我不想只托管静态内容的原因是: 一些内容将是虚拟的 一些元数据将是非标准的 我需要添加自定义挂钩、访问控制和错误处理 计划对在线数据进行一些处理/过滤,因此我需要能够在两端添加自定义代码 如果有任何区别,则所有内容都属于同一类型,并将在加载/保存时反序列化/序列化 有没有一个标准的方法可以做到这一点?有更好的方法吗 编辑:我让bean与VisualWebDe

我需要生成一个在客户端看起来像文件系统的web服务。我需要客户能够:

  • 加载文件
  • 保存文件
  • 访问有关文件的元数据
  • 使用用户名/密码
我不想只托管静态内容的原因是:

  • 一些内容将是虚拟的
  • 一些元数据将是非标准的
  • 我需要添加自定义挂钩、访问控制和错误处理
  • 计划对在线数据进行一些处理/过滤,因此我需要能够在两端添加自定义代码
如果有任何区别,则所有内容都属于同一类型,并将在加载/保存时反序列化/序列化

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


编辑:我让bean与VisualWebDeveloper一起玩,它允许远程调用(它认为是通过SOAP)给出如下代码:

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

这就得到了我想要的90%。剩下的就是有一个服务于整个子目录(并获取路径)的单一实例,让IIS处理我的所有安全性和一些其他细节。

可能值得研究协议,因为有一些与元数据相关的扩展。不确定这是否正是您所说的Web服务的意思,如果您是指SOAP,那么您可能会遵循协议,但将其包装在SOAP中。

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


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

我建议签出WCF而不是.NET webservices-它为您提供了更大的灵活性和更多的选项,例如“可靠的会话”(这将处理短时间的网络故障),它为您提供了对大型消息的MTOM编码的轻松支持,如果您计划提供视频或其他内容,它甚至支持流式传输


Marc

在我看来,好像你想用虚拟目录和自定义安全性(也可能是自定义HTTP处理程序)建立一个ASP.NET网站。您不想这样做有什么具体原因吗?我建议您不要开始使用ASMX web服务。它们已经没有什么前途了。改用WCF开始。@John;WCF通过了第一阶段测试;我得到了“hello world”在MS工作时,不希望有人被总线撞到。WebDAV可能会工作,但我们有一些相当具体的版本要求。如果实现我们自己的系统像它看起来应该的那样简单(请参阅我的编辑),那么在尝试适应这个框体之前不会花费太多时间,这将是非常麻烦的。