Услуги отдыха WCF, размещенные в IIS, не поддерживают поставку и удаляют

StackOverflow https://stackoverflow.com/questions/3535818

  •  30-09-2019
  •  | 
  •  

Вопрос

Я создал службу WCF REST (AKA WebHTTP) в .NET 4, используя Microsoft WCF Stard Template 40. Я принимаю услугу в IIS 6.

Шаблон сервиса использует маршрутную в Global.Asax как способ создания «чистого» URL-адреса, который не включает в себя «.svc». Например:

http: // localhost / Рейсы / 878

Получите и постите работать нормально против этого URL, но поставить и удалить результат в HTTP 501, «не реализован».

Если я создаю простой файл .svc, как это:

<%@ ServiceHost Language="C#" Debug="true" Service="MyProject.FlightsService"%>

Тогда я могу использовать положить и удалять против этого URL:

http: // localhost / flandservice.svc / 878

Кто-нибудь знает, можно ли поставить и удалить, чтобы работать против «чистого» URL выше? Похоже, что нет способа настроить IIS, чтобы позволить этому, потому что нет расширения файла для настройки параметров, и я не хочу разрешать поставку и удалять глобально.

Это было полезно?

Решение

Я не работал с IIS6 некоторое время (и у меня нет его установленного, поэтому я ухожу с памятью здесь), но мне пришлось реализовать что-то подобное с IIS6 для маршрутизации Urnals Urals в IIS6.

Вы можете включить сопоставления сценариев WildCard в папке по базе папки путем взлома IIS Manager. Этот Сообщение блога это то, что я следовал, и это работает очень хорошо (и это связь Предоставляет немного больше фона). Это действительно ошибка в менеджере, а не сама IIS (по крайней мере, вот что я говорю себе).

Можете ли вы ссылаться на ваши услуги в подпапке на вашем сайте (например, http: // localhost / Services / flight / 878)? Если это так, и если вы реализуете IIS Manager Hack выше, я думаю, что вы можете включить все глаголы HTTP для этого каталога. Опять же, я ухожу с памяти (и мы только реализовали полученные посты, поэтому я не имел дело с классами и удаляемыми), поэтому я надеюсь, что я получаю это правильно.

Дайте мне знать, если вам нужна дополнительная информация или если моя память скользит. :) Надеюсь, это поможет!

Другие советы

Если ваше веб-приложение будет развернуто в нескольких средах Dev / Production, то наилучший способ, кажется, отключен WebDAV на уровне Web.config. Чтобы сделать это, удалите WebDavmodule и обработчик WebDAV, как в приведенном ниже примере:

<system.webserver>
  <modules>
    <remove name="WebDAVModule" />
  </modules>
  <handlers>
    <remove name="WebDAV" />
  </handlers>
</system.webserver>
Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top