WCF в IIS 5.1 служил обычным текстовым файлом

#wcf #iis

#wcf #iis

Вопрос:

Я только что настроил простую службу WCF в своей среде разработки, и пока конечные точки работают нормально как для запросов SOAP, так и для запросов JSONP.

Я приступил к развертыванию этого решения на промежуточном сервере, размещенном в IIS 5.1 (я знаю, старом, но потерпите меня), и .svc файлы внезапно перестали работать. Не то чтобы IIS не мог их найти, скорее они передаются как обычные текстовые файлы.

Это в основном то, что отображается в моем браузере, когда я открываю .svc файл:

 <%@ ServiceHost Language="C#" Debug="true" Service="service.myservice" CodeBehind="myservice.svc.cs" %>
  

Теперь я перепробовал все решения, которые я видел на SO и других сайтах (включая переустановку ASP.NET привязки в IIS с использованием aspnet_regiis и восстановление дескрипторов WCF ISAPI с использованием servicemodelreg.exe ), но ни один из них не работает.

Одна из особенностей, которая может быть примечательной, заключается в том, что IIS 5.1 обслуживает порт 8000, поскольку Apache в настоящее время работает на 80 по умолчанию. Может ли это быть причиной? Я попытался запустить servicemodelreg -s:myservice , чтобы попытаться напрямую указать путь к моему приложению, но он сообщает мне, что такого приложения нет IIS:/localhost/myservice (возможно, потому, что оно должно быть включено IIS:/localhost:8000/myservice ? Я не уверен.)

Я убедился, что у меня отключена функциональная платформа .NET 3.5 framework, .aspx файлы обслуживаются нормально. Это просто .svc файлы, которые не обслуживаются должным образом.

Есть идеи?

Ответ №1:

Если servicemodelreg не сработал, убедитесь, что .svc настроен с использованием сопоставления ISAPI.

Перейдите на вкладку Домашний каталог в свойствах вашего веб-сайта, выберите Конфигурация…

Если .svc отсутствует в списке, настройте его со следующими параметрами:

  • Исполняемый файл: C:WINDOWSMicrosoft.NETFrameworkv2.0.50727aspnet_isapi.dll
  • Расширение: .svc
  • Ограничить: GET,HEAD,POST,DEBUG
  • Движок скрипта: отмечен