2013-11-11 4 views
0

У меня возникла проблема с Breeze, так что когда я пытаюсь вызвать действие Metadata на моих контроллерах, они терпят неудачу с ошибкой 504.Метаданные Breeze возвращают ошибку 504

Примерное вызов // имя_сервера/ветер/контроллер/метаданные

Environment

Web Api работает через IIS7 на балансировкой нагрузки Win 2k8 Azure Virtual Machines

Версии (устанавливается с помощью NuGet) Breeze Client 1.4.2 Breeze Client and Server 1.4.2 Breeze Server - для ASP.NET Web Api (Core) 1.4.2 Breeze Serve г - для ASP.NET Web Api и Entity Framework 1.4.2

Обновление: Обновление до Бриз 1.4.5 не делает никакой разницы

Ранее она работала хорошо, и только последние изменения является введение Балансировка нагрузки.

Обратите внимание: у меня также есть несколько контроллеров, каждый со своими метаданными.

Случаев, когда он работает успешно

  • Запуска через локальный хост.
  • Удаления [BreezeController] атрибута из моего контроллера
  • переименования функции метаданные

случаев, когда он не

  • При развертывании
  • При выполнении простого теста, чтобы вернуться a строка, например:

    [HttpGet] 
    public string Metadata() 
    { 
        return "This was a test"; 
    } 
    

По какой-то причине Breeze, похоже, не нравится функция Metadata в моем контроллере.

Обновления:

Это не выглядит, как его конкретно связанные с использованием нагрузки сбалансированной конечной точки, как я попытался установить его непосредственно работает на порту 8080 с не балансировкой нагрузки конечной точки и была такая же проблема.

Трассировка запроса с ошибкой IIS, похоже, ничего не регистрирует для отказавшего запроса, хотя запрос появляется в журналах IIS.

+0

У меня была такая же проблема после обновления с 0.72 до 1.41 и изменения маршрута из api/{controller}/{action} для breeze/{controller}/{action}. Я получил ответ от ветерок, поэтому я снял вопрос. Однако теперь я думаю, что проблема была в разрешениях. Localhost: 50033 в VS побежал как я, и я в NetworkAdmins, так что, хотя это было бы круто. После развертывания на моем – bizcad

ответ

1

У меня была такая же проблема после обновления с 0.72 до 1.41 и изменения маршрута из api/{controller}/{action} для breeze/{controller}/{action}. Я не получил ответа от ветерок, поэтому я снял вопрос.

Однако, теперь я думаю, что проблема была в разрешениях.Localhost: 50033 в VS побежал как я, и у меня есть учетная запись SQL Server, поэтому, хотя это было бы круто. После развертывания в моем локальном IIS и на тестовом сервере IIS я получал ошибку 500.

Я, наконец, попал в код jquery и определил из jqXHR, что ошибка SQL не обрабатывала учетные данные для анонимного пользователя; Дох! когда это когда-либо было. Я изменил строку подключения в файле web.config и сделал это.

<!--<add name="PilotPlant" connectionString="Data Source=dataweb;Database=PilotPlant;Integrated Security=SSPI;" providerName="System.Data.SqlClient" />--> 

<add name="PilotPlant" connectionString="Data Source=dataweb;Database=PilotPlant;Trusted_Connection=no;User Id=sa;Password=sapassword" providerName="System.Data.SqlClient"/> 

Это менее безопасно, но я бегу внутри брандмауэра, так что это не проблема для меня.

Таким образом, мой ответ проверяет ваши права на кластер. Надеюсь, это поможет.

+0

Спасибо за предложение, но я не думаю о его ошибке разрешения на этом этапе. Я могу успешно запустить его, если я переименую действие метаданных в metadatatest. Существует также ошибка 504 при попытке запустить ее напрямую с помощью браузера, а также с помощью скрипача, поэтому нет ответа, который, как представляется, будет показывать ошибку на стороне javascript. Мне осталось думать, что это либо вызвано проблемой конфигурации на стороне сервера, либо как-то вызвано использованием балансированной нагрузки конечной точки –

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