Файл WCF .svc служит обычным текстом в IIS7.5 .NET 4.0 — не на веб-сайте по умолчанию

ПОСЛЕДНЕЕ ОБНОВЛЕНИЕ: оказалось, что это отвлекающий маневр из-за проблемы со сжатием в модуле DotNetNuke. Мне пришлось добавить в PageBlaster модуль DNN, так что это больше не проблема.

Я впервые развертываю файл WCF svc на своем действующем веб-сайте, и он отображается/обслуживается до браузер как обычный текст. Он отлично работает в моей среде разработки на локальном хосте. Вы можете увидеть проблему здесь:

http://www.pokerdiy.com/test.svc

Веб-сайт работает на IIS 7.5.7600.16385 на Windows Server 2008 R2 версии 6.1 SP1 (64-разрядная версия) в интегрированном пуле приложений с >.NET 4.0 (я использую Entity Framework 4.2).

ОБНОВЛЕНИЕ: на работающем сервере сайт добавляется как веб-сайт (т. е. не в веб-сайт по умолчанию), тогда как в моей среде разработки DotNetNuke работает как виртуальный каталог на веб-сайте по умолчанию с его собственный web.config (который я сравнил с тем, что есть на живом сайте, и он идентичен).

Интересно, что когда я нахожусь на рабочем сервере и просматриваю файл test.svc на веб-сайте DEfault, он работает (http://localhost/Test.svc) — однако на сайте PokerDIY.com нет (http://www.pokerdiy.com/test.svc). Получается, что мой веб-сайт по умолчанию каким-то образом отличается от дополнительных веб-сайтов?

Еще одна интересная вещь: я удалил все сопоставления обработчиков .svc, и теперь я могу получить ошибку «HTTP Error 404.3 — Not Found». Таким образом, сопоставления обработчиков перехватывают его, он просто ничего с ним не делает! Я могу вернуть его к статическому тексту, повторно добавив сопоставления обработчиков .svc.

После большого количества RTFMing первое, что я проверил, это сопоставления обработчиков в соответствии со статьей MS: все сопоставления svc есть (svc-integrated находится вверху как в этой статье)

Я также переустановил WCF согласно эта статья без разницы. Используя Fiddler, я вижу, что Content-Type - "text/html"

Что еще я могу попробовать?

Примечание. Веб-службы ASMX, файлы ASP.NET и т. д. работают нормально.

Обновление: мой хостинг-провайдер предложил мне сделать каталог, в котором находится служба, виртуальным каталогом, чего мне не нужно было делать на моем локальном компьютере в Dev. Итак, теперь он использует аппул родительских веб-сайтов и, по крайней мере, что-то делает - выдает другую ошибку. Однако это звучит неправильно - почему это не может быть обработано приложением веб-сайта? Я переместил .svc в корень (http://www.pokerdiy.com/test.svc), чтобы удалить это из уравнения).

Другие вещи, которые я пробовал: изменение модулей runAllManagedModulesForAllRequests="false" на "true" (это false в моем файле web.config) %windir%\Microsoft.NET\Framework64\v4.0.30319\aspnet_regiis. exe -ir WCF в IIS 5.1 служил обычным текстовым файлом 404 при запуске . служба net 4 WCF в IIS (без файла svc)


person Rodney    schedule 18.12.2011    source источник
comment
Альтернативой размещению в IIS является самостоятельное размещение службы WCF в службе Windows. Это действительно просто и убирает IIS с картинки. Это то, чем я занимаюсь. Привет, Тим :)   -  person Tim Lloyd    schedule 18.12.2011
comment
Спасибо, Тим, но мне нужен доступ к httpcontext и веб-сайту DotNetNuke, поэтому я думаю, что это должно быть в IIS.   -  person Rodney    schedule 19.12.2011


Ответы (3)


Убедитесь, что вы включили роль сервера приложений.

person John Saunders    schedule 18.12.2011
comment
Я никогда не слышал об этом до сих пор - он не был установлен, поэтому я установил его в соответствии с msdn.microsoft.com/en-us/library/ms751518.aspx и перезагрузился. Я также проверил tellingmachine.com/post/. К сожалению, это не повлияло, и проблема осталась - но я думаю, что это на правильном пути? - person Rodney; 18.12.2011
comment
Одна вещь, которая может быть связана - как узнать, какую версию WCF я использую? Я выполнил команду servicemodelreg -i в папке WCF 3 (для 64-разрядной версии), а НЕ в папке .net 4. Я не знаю, как определить, какую версию WCF я использую (на данном этапе это простой тестовый сервис). - person Rodney; 18.12.2011

Мой хостинг-провайдер говорит, что каталог ("/framework") на веб-сайте должен быть настроен как виртуальный каталог и использовать родительский пул приложений.

Когда я делаю это, кажется, что svc обрабатывается (и я получаю еще один набор ошибок .NET).

Однако в моей среде разработки подпапка НЕ ​​является отдельным виртуальным каталогом — нужно ли это?

person Rodney    schedule 20.12.2011
comment
Я не думаю, что это верная информация — моя среда разработки настроена иначе. Чтобы удалить подпапки из уравнения, я поместил файл .svc в корень сайта, у которого нет файла кода программной части — вы можете увидеть его здесь — pokerdiy.com/test.svc (не обрабатывается и отображается как текст) - person Rodney; 20.12.2011

Убедитесь, что просмотр каталогов также «отключен».

person Karthik    schedule 27.11.2014