404 ошибки для запросов PUT и DELETE на развернутой службе WCF RESTful
Я развернул веб-сервис 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;
}
Моя настройка:
- .NET 4.0
- MVC3
- IIS 7.0
Примечание. У меня план общего хостинга, поэтому у меня нет прямого доступа к IIS7.0 a, поэтому мне нужно внести изменения через файл web.config.
1 ответ
Включите трассировку в своей службе и посмотрите, почему вы получаете ошибку 404 при попытке выполнить действие PUT или DELETE.