2015-03-17 2 views
0

Так как я развернул свое приложение в тестовой среде, вызовы/Token (для входа в систему и получения токена) воспроизводятся. Проблема в том, что он не будет работать вообще для нескольких вызовов (занимает 30 секунд, а затем возвращает 500 ошибок), и вдруг он начнет работать (и работает безупречно, получите ответ в < 50 мс).ASP Web API вызов/токен прерывистый

На локальном хосте на машине Dev она никогда не пропускала удар.

Моя установка dev была только на localhost; моя тестовая установка имеет три сервера - один для html/js и iis rewrite, который указывает на второй сервер, на котором размещаются API-интерфейсы и третий сервер БД.

же ответ с помощью следующей 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); 

Или, если я использую Почтальон я получаю тот же ответ.

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 работают безупречно, это только/токен, который играет вверх.

ответ

0

А какая глупая проблема.

Подробные ошибки не работали, так как они проходили через переписку IIS. Я начал напрямую обращаться к API, а ошибки показывали, что «сетевой путь не найден».

Оказывается, у меня был DNS-сервер БД, который подключался к неправильному IP-адресу (не присоединившийся к домену). Я все еще думаю, что странно, что это прерывисто, но похоже, что сейчас работает.

Смежные вопросы