对/Token的ASP Web API调用间歇性

ASP Web API call to /Token intermittent

本文关键字:调用 API Web Token ASP      更新时间:2023-09-26

由于我已经将我的应用程序部署到测试环境中,对/Token(登录并获取令牌)的调用正在进行。问题是,它在几次调用后根本无法工作(需要30秒,然后返回500个错误),然后突然间它就开始工作了(而且工作完美,在<50ms内得到回复)。

在开发机器上的localhost上,它从未跳过任何节拍。

我的开发设置只是在本地主机上;我的测试设置有三个服务器——一个用于html/js,一个iis重写指向第二个托管API的服务器和第三个DB服务器。

通过以下javascript做出相同响应:

        var loginData = {
        grant_type: 'password',
        username: self.loginEmail(),
        password: self.loginPassword()
    };
    $.ajax({
        type: 'POST',
        url: url + '/Token',
        data: loginData
    }).done(function (data) {
        self.loggedInUserName(data.userName);
        // Cache the access token in session storage.
        sessionStorage.setItem(tokenKey, data.access_token);

或者,如果我使用POSTMAN,我会得到同样的回复。

Web.config:

  <system.webServer>
<httpErrors errorMode="Detailed" />
<validation validateIntegratedModeConfiguration="false" />
<modules runAllManagedModulesForAllRequests="true">
  <remove name="WebDAVModule"/>
</modules>
<httpProtocol>
  <customHeaders>
    <add name="Access-Control-Allow-Headers" value="Content-Type" />
    <add name="Access-Control-Allow-Methods" value="GET, POST, PUT, DELETE, OPTIONS" />
  </customHeaders>
</httpProtocol>

我还提出了以下内容:

            GlobalConfiguration.Configuration.IncludeErrorDetailPolicy
        = IncludeErrorDetailPolicy.Always;

在我的Global.asax文件中,但错误消息仍然没有显示(不知道这是否是IIS重写隐藏了它们?)

EDIT:所有对/api的调用都能完美地工作,只有/Token在发挥作用。

真是个愚蠢的问题。

详细的错误在IIS重写过程中不起作用。我开始直接点击API,错误显示为"未找到网络路径"。

原来我的数据库服务器的DNS连接到了错误的IP(非域加入的IP)。我仍然觉得这很奇怪,它是间歇性的,但现在似乎起作用了。