Как я добавил бы новые данные через сервис REST, настроенный против сервиса стиля RPC?

Я бы сказал, что это то, что вы ищете:

RewriteEngine on
RewriteCond %{REQUEST_URI} !-f
RewriteCond %{REQUEST_URI} !-d
RewriteRule ^/?news/(en|de|fr|es)/?$ /news?lang=$1 [END]

Если это правило приводит к «внутренней ошибке сервера» (http status 500), то есть вероятность, что вы используете очень старая версия http-сервера apache. В этом случае либо обновите свой сервер, либо попробуйте использовать более старый флаг [L] вместо флага [END]. Он может работать так же, но это зависит от остальной части установки. Вы найдете явный намек на флаг [END], который в этом случае не поддерживается, в файле журнала ошибок http-серверов.

Это правило также будет работать в конфигурации хоста http-серверов или в файле динамической конфигурации (файл стиля ".htaccess"). Если вам действительно нужно использовать такой динамический файл, то позаботьтесь о том, чтобы в вашей конфигурации хоста была включена его интерпретация, а указанное выше правило помещалось в такой файл в папке DOCUMENT_ROOT хоста http.

И общее замечание: вы всегда должны предпочитать размещать такие правила в конфигурации хоста http-серверов вместо использования файлов динамической конфигурации (".htaccess"). Эти динамические конфигурационные файлы добавляют сложность, часто являются причиной неожиданного поведения, их трудно отладить, и они действительно замедляют работу http-сервера. Они предоставляются только в качестве последнего варианта для ситуаций, когда у вас нет доступа к реальной конфигурации хоста http-серверов (читай: действительно дешевые поставщики услуг) или для приложений, настаивающих на написании своих собственных правил (что является очевидным кошмаром безопасности).

5
задан Sailing Judo 11 February 2009 в 15:45
поделиться

5 ответов

Результаты:

Я наконец нашел хорошее сообщение в блоге, которое помогло мне разрешить это. Оказывается, что я в значительной степени делал вещи правильно, но я помещал тест в Скрипача неправильно. Я также добавил еще несколько деталей к своему атрибуту.

[WebInvoke(RequestFormat = WebMessageFormat.Xml, 
           ResponseFormat = WebMessageFormat.Xml,
           Method = "POST", UriTemplate = "tasks/{description}", 
           BodyStyle = WebMessageBodyStyle.Bare)]
[OperationContract]
void AddTask(string description);

Когда я поместил свой Uri в Скрипача, он должен был быть похожим на это:

http://ipv4.fiddler:8054/tasks/this+is+a+sample+desc+that+works

Теперь мой сервис правильно принимает данные и может добавить задачу к базе данных.

3
ответ дан 15 December 2019 в 01:12
поделиться

Смотрите на Стартовый набор REST WCF, который может быть загружен с CodePlex здесь.

1
ответ дан 15 December 2019 в 01:12
поделиться

Я думаю, что это в значительной степени описывает, как добавить объект к контейнеру успокоительным способом.

0
ответ дан 15 December 2019 в 01:12
поделиться

В зависимости от требований Вы могли просто включить регулярный CRUD через Асторию? У меня есть последовательное покрытие, как сделать это с LINQ-SQL здесь. Просто мысль.

0
ответ дан 15 December 2019 в 01:12
поделиться

Если Вы хотите сделать, УСПОКОИТЕЛЬНЫЙ веб-сервис затем не использует приложение WCF. Измените свой шаблон URI к чему-то как Задача / новый и поместите данные новой задачи в теле запроса HTTP POST. Я реализую УСПОКОИТЕЛЬНЫЕ веб-сервисы в ASP.NET как универсальные обработчики (*.ashx). Это позволяет мне подготавливать http метод и идти оттуда.

kevin

0
ответ дан 15 December 2019 в 01:12
поделиться
Другие вопросы по тегам:

Похожие вопросы: