Больше, чем, вероятно, .svc расширение не регистрируются под IIS, как обрабатываемым ASP.NET (WCF).
Попытка эти 2 шага (заменяют Платформу Framework64, если это необходимо):
Переходят в:
C:\Windows\Microsoft.NET\Framework\v2.0.50727\
и затем выполненный:
aspnet_regiis -i
Переходят в: C:\Windows\Microsoft.NET\Framework\v3.0\Windows Communication Foundation
и затем выполненный:
ServiceModelReg.exe -i
Существует две вещи, о которых я могу думать:
.svc расширение правильно не настраивается (наименее вероятный согласно Вашему описанию). Можно проверить этот сообщение для получения дополнительной информации.
Или Ваш веб-сайт имеет несколько заголовков хоста. Для решения этого вопроса Вы должны иметь единственный заголовок хоста или использовать фабрику. Here’s пример:
namespace MyNamespace
{
public class MultipleHostServiceFactory : ServiceHostFactory
{
protected override ServiceHost CreateServiceHost(Type serviceType, Uri[] baseAddresses)
{
List<Uri> addresses = new List<Uri>();
addresses.Add(baseAddresses[0]);
return base.CreateServiceHost(serviceType, addresses.ToArray());
}
}
}
Затем, необходимо установить фабрику в разметке .svc файла:
<%@ ServiceHost Language="C#"
Debug="false"
Factory="MyNamespace.MultipleHostServiceFactory"
Service="MyNamespace.MyService"
CodeBehind="MyService.svc.cs" %>
В Диспетчере информационных служб Интернета (IIS)
откройте узел под названием Расширение веб-службы
. Убедитесь, что для параметра ASP.NET v2.0.5.0727
установлено значение Разрешено. Я часами искал различные настройки и обнаружил, что для них установлено значение «Запрещено». Просто нажмите кнопку «Разрешить», чтобы включить ASP.NET.
У меня была такая же проблема. В итоге я работал с 64-разрядной версией Windows 2003 Server, и мои сборки были настроены для «Any CPU». После того, как я сменил сборки на x86 и загрузил их на сервер, все заработало.
Я не знаю, почему никто не упомянул об этом где-либо еще в 30 темах, о которых я читал, но мой друг порекомендовал его мне, и это сработало как шарм.
Просто выбросить его туда на всякий случай имеет ту же проблему.