У меня проблема с построением и развертыванием служб WCF Rest с IIS 7.5.Если я открою Visual Studio 2010 и создам новый проект типа «Приложение-служба WCF», а затем опубликую его в IIS, он будет работать нормально.Однако, когда я пытаюсь указать свойство WebGet в контракте операции из интерфейса IService.cs, я получаю сообщение об ошибке.
Интерфейс (из IService.cs):
[ServiceContract]
public interface IService
{
[OperationContract]
[WebGet(UriTemplate = "hello/?n={name}")]
Message SayHello(string name);
}
Соответствующий метод(из Service.svc):
public Message SayHello(string name) {
return Message.CreateMessage(MessageVersion.None, "*", "Hello "+name+"!");
}
Я пытаюсь опубликовать это в приложении IIS, которое я создал (http://localhost/rest/) под моим корневым сайтом (http://localhost/)), и публикация работает успешно, однако, когда я пытаюсьЗаходя на любую страницу из браузера, я получаю следующую ошибку:
Failed to map the path '/rest'.
Я также пытался изменить UriTemplate на [WebGet(UriTemplate = "rest/hello/?n={name}")]
, и я получаю ту же ошибку.
Я использую конфигурацию по умолчаниюфайл из IIS:
<?xml version="1.0"?>
<configuration>
<system.web>
<compilation debug="true" targetFramework="4.0" />
</system.web>
<system.serviceModel>
<behaviors>
<serviceBehaviors>
<behavior>
<serviceMetadata httpGetEnabled="true"/>
<serviceDebug includeExceptionDetailInFaults="false"/>
</behavior>
</serviceBehaviors>
</behaviors>
<serviceHostingEnvironment multipleSiteBindingsEnabled="true" />
</system.serviceModel>
<system.webServer>
<modules runAllManagedModulesForAllRequests="true"/>
</system.webServer>
</configuration>
Следует также упомянуть, что я использую пул приложений для .NET 4.0.
Пожалуйста, помогите, поскольку я очень озадачен этим.
Заранее спасибо!
Джеффри Кевин Прай