представить "Файловую систему" через. .NET WebService - PullRequest
0 голосов
/ 27 марта 2009

Мне нужно создать веб-сервис, который будет выглядеть на стороне клиента как файловая система. Мне понадобится клиент, чтобы иметь возможность:

  • загрузка файлов
  • сохранить файлы
  • доступ к метаданным о файлах
  • использовать имя пользователя / пароль

Причина, по которой я не хочу просто размещать статический контент, заключается в том, что:

  • часть контента будет виртуальной.
  • некоторые метаданные будут нестандартными.
  • Мне нужно будет добавить пользовательские хуки, средства управления доступом и обработку ошибок.
  • Есть планы сделать некоторую обработку / фильтрацию данных на проводе, поэтому мне нужно иметь возможность добавлять пользовательский код на обоих концах.

Если это имеет какое-либо значение, все содержимое относится к одному типу и будет десериализовано / сериализовано при загрузке / сохранении.

Есть ли стандартный способ сделать это? Есть ли лучший способ сделать это?


edit: У меня есть бин, играющий с 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 ]

1 голос
/ 28 марта 2009

Я бы рекомендовал использовать WCF вместо веб-сервисов .NET - это дает вам больше гибкости, больше возможностей, например. «надежные сеансы» (которые будут иметь дело с короткими перебоями в работе сети), и это дает вам простую поддержку кодировки MTOM для больших сообщений и даже поддерживает потоковую передачу, если вы планируете обслуживать, например видео или другой контент.

Марк

0 голосов
/ 27 марта 2009

Рассматривали ли вы реализацию протокола, такого как WebDAV или даже FTP? Уже разработаны файловые службы и протоколы передачи файлов. Даже если вы не можете использовать стороннюю реализацию одного из них, вы можете, по крайней мере, реализовать протокол и избавить себя от переизобретения этого конкретного колеса.

При необходимости вы можете перевести один из этих протоколов в интерфейс веб-служб, но по крайней мере у вас будет полный протокол на выбор в процессе проектирования.

0 голосов
/ 27 марта 2009

Возможно, стоит изучить протокол WebDav , в котором есть расширения, связанные с метаданными. Не уверен, что это именно то, что вы подразумеваете под веб-сервисом, если вы имеете в виду SOAP, вы можете следовать протоколу, но обернуть его в SOAP.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...