-- ASP.NET Web API

ASP.NET Web API : Parametre Olarak Noktalı Veri Göndermek

Merhaba,

Endüstry 4.0 için  geliştirdiğim ve ASP.NET Web API mimarisi üzerine kurduğum yazılım projemde parametre gönderirken bir sorunla karşılaştım.

Sorun;

ASP.NET Web API’de  aşağıdaki gibi bir parametre gönderimi sorunsuz şekilde çalışmaktadır.

http://domain.com/api/controllerName/ActionName/ABCVerisi

Burada sorgulanmak istenen veri ABCVerisi adındaki veridir. Ancak aşağıdaki gibi bir çağrı yaptığımızda API 404 hatasına düşmektedir.

http://domain.com/api/controllerName/ActionName/X.X.X

Buradaki sorun noktalardır. Web API varsayılan olarak noktaları dosya uzantısı(extension) olarak tanıyor. Ve bildiğiniz gibi Web API çağrıları otomatik olarak kendisi tanımlayıp yakalar. Bu nedenle hatalı bir istek olarak değerlendiriliyor.

Çözüm;

Projenizin Web.Config dosyasında system.webServer > handlers altında bulunan EtensionlessUrlHandler… ismiyle başlayan ISAPI Handler’larında önce aşağıdaki tanımlamayı yapın.

<add name="ExtensionlessUrlHandler-Integrated-4.0-ForApi"
     path="api/*"
     verb="*"
     type="System.Web.Handlers.TransferRequestHandler"
     preCondition="integratedMode,runtimeVersionv4.0" />

Bu tanımlamadan sonra tekrar deneyin. Sorun düzelmiş olacaktır.

Eğer sorun devam ederse IIS’i yeniden başlatın.

Sunucudayken IIS’i yeniden başlatmak için;

  • iisreset /stop
  • iisreset /start

İyi çalışmalar.
Cihan

Yorumla

Yorum