2012-09-05 36 views
9

Bir MVC 4 uygulamasında PUT kullanmaya çalışıyorum ve 405 hatası alıyorum. Benim yönlendirme olarakMVC 4. IIS 7.5 PUT döndürüyor 405

Ben PUT ve POST izin yolu üzerinde bir sınırlama var, uç nokta çalışır POST için, PUT burada burada tavsiye ASP.NET Web API returns 404 for PUT only on some servers ve ASP.NET MVC got 405 error on HTTP DELETE request?

izlediyseniz bir 405.

ile başarısız

Ayrıca IIS'den WeDAV'ı da sildim, ancak hala 405'i alıyorum. Başka önerileri olan var mı?

Ben de bu tavsiyelerde ASP.NET Web API - PUT & DELETE Verbs Not Allowed - IIS 8 ve hala şans takip ettik bunun için (Visual Studio 2012 ile birlikte) IIS 8 üzerinde tam olarak aynı sorunu yaşıyorum

cevap

1

Ben WebAPI kullanıyorum Yukarıda Dediğim gibi ve WebAPI 'nin hangi fiillerin hangi yöntemlerle eşleştirildiği üzerinde' telaşlı 'olduğu görülmektedir. Yönlendirmeyi beklediğim gibi çalışmak için [HttpXXX] özelliklerini (HttpPut, Get, Delete ve Post) uygun yöntemlere eklemek zorunda kaldım.

25

Barındırma sağlayıcım WebDAV'I kaldıramaz, çünkü bu herkesi etkileyebilir.

Bu, runAllManagedModulesForAllRequests = "true" çalıştı, ancak önerilmez.

WebDAVModule modülünü kaldırmak dahil birçok düzeltme yapıldı ancak bu hala çalışmadı. İşleyiciyi de kaldırdım ve son olarak tüm fiilleri POST GET PUT DELETE kullanabilirdim.

WebDAVModule ve WebDAV'ı modüllerde ve işleyicilerinde kaldırın. içinde ... IIS altında sitemde tıklandığında benim 2 sent koymak

<modules> 
    <remove name="WebDAVModule" /> 
</modules> 
<handlers> 
    <remove name="WebDAV" /> 
</handlers> 
+1

Benim web. config zaten runAllManagedModulesForAllRequests = "true" değerine sahipti. Yukarıdaki kaldır webDAV satırları eklemek benim için harika çalıştı. – Jbecwar

+0

Bunu daha önce yapmış olduğumu düşünmüştüm, ama sadece işleyiciyi kaldırdım - modülü değil. Teşekkürler! –

+0

Bu benim için çalışıyor. +1 –

0

'IIS' başlığı altında son girdi olarak 'WebDAV Yazma Kuralları' gösterdi. Bunun üzerine çift tıklamak 'WebDAV özelliği devre dışı bırakıldı.' Sağda uyarı var ve 'WebDAV'ı Etkinleştir' bağlantısı vardı, ancak hala işe yaramadı. Ben Stanomatic önerisi yukarıdaki, işleyicileri bölüm önemli değildi izledi ve benim modülleri şuna benziyordu:

<modules runAllManagedModulesForAllRequests="true" /> 

Ben sadece içinde kaldırmayı eklenmiş ve bu benim problem düzeltildi:

<modules runAllManagedModulesForAllRequests="true"> 
    <remove name="WebDAVModule" /> 
</modules>