SORU
5 HAZİRAN 2012, Salı


ASP.NET Web - KOY VE SİL Fiiller İzin Verilmiyor - IIS 8 API

Geçenlerde Visual Studio 2012 RC için Visual Studio 2010 yükseltti. Yükleyici ayrıca IIS 8, Visual Studio varsayılan web sunucusu olarak kullandığı İfade yükler.

IIS 8 KOY VE SİL fiiller kullanan WEB API benim istekleri engelliyor. IIS verir 405 hatası, The requested resource does not support http method 'PUT'.

İnsanlar geçmişte bu sorunları biliyorum Ve bu konuda birçok mesaj var Yığın Taşması. IIS 7 Express ile çözüm WebDav kaldırmak için. Ne yazık ki IIS 8 ile bunu yapmak için herhangi bir yol göremiyorum.

Applicationhost WebDav bölümleri düzenleme dışında çalıştım.ama bir faydası olmadı config. Örneğin config dosyasından <add name="WebDAVModule" image="%IIS_BIN%\webdav.dll" /> çıkardım.

Çok uzun zamandır bu günü geçirdim. PUT ve DELETE etkinleştirmek için basit bir yolu olmalı?

CEVAP
6 HAZİRAN 2012, ÇARŞAMBA


Tamam. Sonunda bu işin. Bazı halkaların içinden KOY ve SİL fiiller doğru İİS8 ile çalışma almak için atlamak gerekir. VS 2012 sürüm adayı yükleyin ve yeni WEB API projesi oluşturmak aslında örnek KOYMAK bulmak ve yöntemleri kutudan 404 hataları geri sileceğiz.

PUT kullanımı ve Web ile fiiller SİLMEK için %ilgili düzenleme için gereken API%\\iisexpress\config\applicationhost belgeler.ve ExtensionlessUrl aşağıdaki gibi işleyicisi fiiller config ekleyin

Bu satırı değiştirin:

<add name="ExtensionlessUrl-Integrated-4.0" path="*." verb="GET,HEAD,POST,DEBUG" type="System.Web.Handlers.TransferRequestHandler" preCondition="integratedMode,runtimeVersionv4.0" />

için:

<add name="ExtensionlessUrl-Integrated-4.0" path="*." verb="GET,HEAD,POST,DEBUG,PUT,DELETE" type="System.Web.Handlers.TransferRequestHandler" preCondition="integratedMode,runtimeVersionv4.0" />

Yukarıdakilere ek olarak WebDAV istekleri ile müdahale olmadığından emin olmalısınız. Bu applicationhost aşağıdaki satırları yorum tarafından yapılabilir.config.

<add name="WebDAVModule" image="%IIS_BIN%\webdav.dll" />
<add name="WebDAVModule" /> 
<add name="WebDAV" path="*" verb="PROPFIND,PROPPATCH,MKCOL,PUT,COPY,DELETE,MOVE,LOCK,UNLOCK" modules="WebDAVModule" resourceType="Unspecified" requireAccess="None" />

Ayrıca, varsayılan Web API sözleşmesi yöntemi adı çağrılan HTTP fiil olarak aynı olması gerektiğini unutmayın. Eğer silmek bir HTTP isteği göndermek istiyorsanız, varsayılan olarak, örneğin, yöntem, Sil adlı olmalıdır.

Bunu Paylaş:
  • Google+
  • E-Posta
Etiketler:

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • Associated Press

    Associated P

    18 EYLÜL 2006
  • Ayite Atiwoto (superjiffrey)

    Ayite Atiwot

    29 EYLÜL 2010
  • theKGB65

    theKGB65

    24 Aralık 2007