#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
- Движок скрипта: отмечен