Я тестирую службу REST в WCF на .net 4 - то есть нет файла svc. Он отлично работает при работе с VS dev-сервером, но когда я его запускаю для работы с IIS, я получаю 404s при попытке просмотреть страницу справки или применить любой из методов обслуживания.
Я вернулся к сервису bare-костей, чтобы просто запустить его на IIS, но я не уверен, что с ним не так.
У global.asax просто есть
protected void Application_Start(object sender, EventArgs e)
{
RouteTable.Routes.Add(new ServiceRoute("", new WebServiceHostFactory(), typeof(DataPortalService)));
}
и сама услуга такая же простая, как и она:
[AspNetCompatibilityRequirements(RequirementsMode = AspNetCompatibilityRequirementsMode.Allowed)]
public class DataPortalService : IDataPortalService
{
[WebGet(UriTemplate = "Test/TestMethod")]
public string TestMethod()
{
return "Hi!";
}
}
[ServiceContract]
public interface IDataPortalService
{
[OperationContract]
string TestMethod();
}
и конфигурационный файл
<configuration>
<system.web>
<compilation debug="true" targetFramework="4.0" />
</system.web>
<system.serviceModel>
<serviceHostingEnvironment aspNetCompatibilityEnabled="true"/>
<standardEndpoints>
<webHttpEndpoint>
<standardEndpoint name="" helpEnabled="true" automaticFormatSelectionEnabled="true" />
</webHttpEndpoint>
</standardEndpoints>
</system.serviceModel>
</configuration>
Нажатие на страницу /help или метод дает мне 404.0.
Я предполагаю, что мне просто не хватает некоторых параметров в IIS, чтобы выгнать его в жизнь, хотя это немного глупо, что он отлично работает на dev-сервере, но не IIS.