Я тестирую REST-сервис в WCF на .net 4, т. Е. Нет файла SVC. Он отлично работает при работе с сервером VS dev, но когда я переключаю его на работу с IIS, я получаю 404 при попытке просмотреть страницу справки или нажать любой из методов обслуживания.
Я вернулся к сервису «голые кости», чтобы просто запустить его на 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>
Попадание на страницу / справки или метод дает мне 404.0.
Полагаю, я просто пропускаю некоторые настройки в IIS, чтобы запустить их в жизнь, хотя немного глупо, что они отлично работают на сервере dev, но не в IIS.