Questo errore è molto comune e ho provato tutte le soluzioni e nessuna di esse ha funzionato. Ho disabilitato la pubblicazione WebDAV nel pannello di controllo e l'ho aggiunto al mio file di configurazione web:
<handlers>
<remove name="WebDAV"/>
</handlers>
<modules runAllManagedModulesForAllRequests="true">
<remove name="WebDAVModule"/>
</modules>
L'errore persiste ancora. Questo è il controller:
static readonly IProductRepository repository = new ProductRepository();
public Product Put(Product p)
{
return repository.Add(p);
}
Implementazione del metodo:
public Product Add(Product item)
{
if (item == null)
{
throw new ArgumentNullException("item");
}
item.Id = _nextId++;
products.Add(item);
return item;
}
Ed è qui che viene lanciata l'eccezione:
client.BaseAddress = new Uri("http://localhost:5106/");
client.DefaultRequestHeaders.Accept.Add(
new MediaTypeWithQualityHeaderValue("application/json"));
var response = await client.PostAsJsonAsync("api/products", product);//405 exception
Eventuali suggerimenti?