我在Azure App服务上部署了ASP.NET Web API。
我遇到以下错误:对于一个特定的业务对象,我的Web API的GET方法返回Internal server error
,而对于其他业务对象,相同的GET方法可以正常工作。
当我调试Web API时,结果是返回了有效的业务对象,但是…GET方法被多次触发(在客户端,我看到它仅被调用一次)
这是摘录,其中从客户端代码调用了Web API
// Create HTTP transport objects
HttpRequestMessage httpRequest = new HttpRequestMessage();
httpRequest.Method = HttpMethod.Get;
httpRequest.RequestUri = new Uri(url);
// Set Credentials
if (this.Credentials != null)
{
cancellationToken.ThrowIfCancellationRequested();
await this.Credentials.ProcessHttpRequestAsync(httpRequest, cancellationToken).ConfigureAwait(false);
}
HttpResponseMessage httpResponse = await this.HttpClient.SendAsync(httpRequest, cancellationToken).ConfigureAwait(false);
此外-如果我尝试从浏览器中打开相同的URL (例如:https://myservice.com/api/businessObject/xxx)-请求仅执行一次(应如此),并显示正确的结果(Json)在浏览器中。
有什么建议可以尝试说明为什么从客户端(针对特定对象)进行调用会导致多个Web API服务执行以及如何解决此问题?
我的Web API服务源自System.Web.Http.ApiController
我从异常中获得了一些信息,但这似乎不是很有帮助
Exception thrown: 'Microsoft.Rest.TransientFaultHandling.HttpRequestWithStatusException' in Microsoft.Rest.ClientRuntime.dll The thread 0x27fc has exited with code 0 (0x0)
编辑
我从Azure日志流中获得了一些信息,但是这些信息没有接缝……因为此问题发生在一个特定的业务对象(并且仅在从我的应用程序请求时才发生-从Web浏览器不会失败),其他业务对象工作正常,所以我看不到这与access / web.config文件有什么关系...
IIS无法访问网站或应用程序的web.config文件。如果NTFS权限设置不正确,可能会发生这种情况。 IIS无法处理网站或应用程序的配置。 经过身份验证的用户无权使用此DLL。 .. 确保web.config文件的NTFS权限正确,并允许访问Web服务器计算机帐户。 检查事件日志以查看是否记录了任何其他信息。 验证DLL的权限。 如果请求已映射到托管处理程序,请安装.NET可扩展性功能。 创建跟踪规则以跟踪对此HTTP状态代码的失败请求