Я развернул веб-сервис MVC3 и WCF как одно приложение. Оба работают как положено. Запросы GET и POST работают отлично, но запросы PUT и DELETE возвращают 404 ошибки. Они работают хорошо на местном уровне. Первоначально он запрашивал имя пользователя / пароль для запросов PUT / DELETE.
Вот мой конфиг WebServer из моего файла web.config
<system.webServer>
<validation validateIntegratedModeConfiguration="false" />
<modules runAllManagedModulesForAllRequests="true">
<remove name="WebDAVModule" />
</modules>
<handlers>
<remove name="WebDAVModule" />
</handlers>
<security>
<authorization>
<remove users="*" roles="" verbs="" />
<add accessType="Allow" users="*"
verbs="GET,HEAD,POST,DEBUG,PUT,DELETE" />
</authorization>
</security>
</system.webServer>
Вот мои методы PUT и DELETE:
[OperationContract]
[WebInvoke(UriTemplate = "{id}", Method = "PUT")]
public MyResource Put(MyResource updatedResource, int id)
{
MyResource existingResource = Database.GetResourceById(id);
existingResource.Name = updatedResource.Name;
Database.SaveResource(existingResource);
return existingResource;
}
[OperationContract]
[WebInvoke(UriTemplate = "{id}", Method = "DELETE")]
public MyResource Delete(int id)
{
MyResource sampleResource = Database.DeleteResourceById(id);
return sampleResource;
}
Мои настройки:
Примечание. Я пользуюсь планом общего хостинга, поэтому у меня нет прямого доступа к IIS7.0 a, поэтому мне нужно внести изменения через файл web.config.