2017-04-18 117 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封信件。

相关问题