2017-04-18 4 views
0

Ich habe ein Problem bezüglich meiner Web-API. Diese API ruft eine externe API auf, um Adressen mithilfe der Postleitzahl zurückzugeben.ASP.NET C# -Web-API gibt manchmal 404 zurück, manchmal funktioniert

Also im Grunde funktioniert es auf dem Server es gehostet wird. Bitte beachten Sie, dass dies ein Ordner ist, der in eine Anwendung in IIS 8.5 konvertiert wird, AppPool ist integriert, Version ist 4.0. In einigen Fällen funktioniert es, aber nach 10 oder 20 Minuten gibt es 404 zurück. Es hat kein Problem, wenn ich auf dem Server selbst nur außerhalb des Netzwerks darauf zugreife. Es wird irgendwann funktionieren, aber nach ein paar Minuten, 10 oder 20 wird es nicht und wird 404 zurück und dann umgekehrt. Hat das etwas mit Netzwerk zu tun? Ich bin nicht verantwortlich dafür, also frage ich.

Ich nenne es Link-Format unter:

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

Hier ist meine Datei 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> 

Jede Hilfe wird sehr geschätzt.

+6

-Code 404s nicht periodisch zurückgibt, wenn Sie etwas in Ihrem Code haben, der zurückkehrt aktiv ein 404. –

+0

entweder es gibt einen legit Grund in den Code ein zurückzukehren (zB Sie eine Ressource angefordert, die nicht da ist) oder es gibt ein Netzwerkproblem, aber intermittierende Netzwerkprobleme führen eher zu anderen Arten von Fehlern. Sie waren auch nicht ganz klar - ist Ihre Web-API die Quelle der 404s oder der externen API, die sie aufruft? Wenn die 404s passieren, haben Sie genügend Protokollierung auf dem Server, um zu verfolgen, welcher Code _is_ ausgeführt wird und verfolgen den Fortschritt der Anfrage? Wenn nicht, sollten Sie einige Protokollierung hinzufügen und erneut bereitstellen. – ADyson

+0

Danke an alle. Ich habe versucht, meine Anrufe mit einem benutzerdefinierten Header zu überwachen. Es stellt sich heraus, dass es einen alten Inhalt im Load Balancer bereitgestellt hat. Der andere Server enthält die API-Dateien nicht und gibt 404 zurück. – Saitama

Antwort

0

Wahrscheinlich ist es nicht Code-Problem, aber API-Server. Versuchen Sie, neues reines Projekt und Zugriff auf diese API zu erstellen, wenn es funktioniert, dann falsch und es ist Code-Problem. Möglicherweise hat es einen eingeschränkten Zugang, wie Google Translator API erlauben nur 1.000.000 Briefe pro Tag und 10.000.000 pro Tag.

Verwandte Themen