2017-04-18 81 views
0

我有一個關於我的Web API的問題。此API調用外部API以使用郵政編碼返回地址。ASP.NET C#Web API有時會返回404,有時會工作

所以基本上它在它託管的服務器上工作。請注意,這是在IIS 8.5中轉換爲應用程序的文件夾,AppPool爲Integrated,版本爲4.0。在某些情況下,它可以正常工作,但在10或20分鐘後它將返回404.如果我僅在服務器本身上訪問網絡,則不會有問題。它會在某個時間工作,但幾分鐘後,10或20會不會返回,然後返回404,反之亦然。這與網絡有什麼關係?我不負責,所以我問。

我把它用下面鏈接的格式:

https://example.com/ConvertedToAppFolder/FindAddress/webservice.asmx/GetAddress?postcodeval=xxxxxxx&houseno=xx

這裏是我的web.config文件

<?xml version="1.0"?> 
<configuration> 
<system.web> 
<customErrors mode="Off"/> 
<compilation debug="true" targetFramework="4.0"/> 
<webServices> 
    <protocols> 
     <add name="HttpGet"/> 
     <add name="HttpPost"/> 
    </protocols> 
</webServices> 
</system.web> 
<system.webServer> 
<httpProtocol> 
<customHeaders> 
    <add name="Access-Control-Allow-Origin" value="*" /> 
    <add name="Access-Control-Allow-Headers" value="Content-Type" /> 
</customHeaders> 
</httpProtocol> 
</system.webServer> 
</configuration> 

任何幫助是非常讚賞。

+6

代碼不會定期返回404s,除非您的代碼中有一些主動返回404的代碼。 –

+0

要麼返回代碼的合法原因(例如您請求的某個資源不存在),要麼存在網絡問題,但間歇性網絡問題更可能導致其他類型的錯誤。另外,你還沒有完全清楚 - 你的Web API是404s的源代碼還是它調用的外部API?當404s發生時,您是否有足夠的日誌記錄在服務器上以跟蹤執行的代碼並跟蹤請求的進度?如果沒有,你應該添加一些日誌並重新部署。 – ADyson

+0

謝謝大家。我試圖使用自定義標題來監視我的呼叫。事實證明,它正在提供負載均衡器中的舊內容。其他服務器不包含API文件,因此它返回404。 – Saitama

回答

0

可能它不是代碼問題,但API服務器。嘗試創建新的純項目並訪問此API,如果它正常工作,那麼我錯了,它是代碼問題。可能它的訪問權限有限,如谷歌translater API只允許每天1,000,000封信件和每天10,000,000封信件。

相關問題