我最近遇到了一個問題,我正在爲客戶運行一個簡單的Web API服務。該服務接受GET或POST。 POST方法是這樣定義的:ASP.Net Web API 2在POST上返回404(有時)
public IHttpActionResult PostUpload(UploadModel model)
{ ... }
這個模型看起來是這樣的:
public class UploadModel
{
public Guid UserKey { get; set; }
public string OrgCode { get; set; }
public byte[] Export { get; set; }
}
客戶今天報道說,他開始有與我們建立與服務交互的客戶端程序的麻煩。只要程序從200以外的其他服務接收到狀態代碼,程序就會記錄日誌。當客戶運行該程序時,他將收到404 - Not Found。我在IIS日誌中驗證該程序正在發送POST請求,並且該URI是正確的。
當我運行該程序時,它總是收到200狀態。
該方法中的代碼只返回兩個可能的IHttpActionResult中的一個:確定是否沒有問題,否則爲InternalServerError()。
使用郵差,我已經嘗試發送參數UserKey,OrgCode和Export的各種不同的組合/值,但我無法讓API發送回200或500以外的任何其他狀態。我嘗試過使用與客戶相同的數據,並從我的終點始終貫穿始終。
它似乎是某種路由問題,就像它不能識別正確的方法,但我看不出是什麼問題。希望有人指出我明顯缺少的東西。
你如何配置你的路由?您是使用基於約定的路由還是屬性路由? – Nkosi
基於約定。對/ api/DataExports/Upload的POST會爲我返回一個200,對於使用相同應用程序併發送相同數據的客戶,這將返回404。下一步,我猜是捕獲請求信息,因爲它打到網站,看看是否有代理或他的一端擰緊請求。 –