Breeze.js 1.53 возможные критические изменения из Breeze.js 1.5.1

Я использую поддомен на своем размещенном веб-сайте для этого приложения. Итак, imi. {Url} идет прямо в папку с приложением. Бриз 1.5.3

У меня есть еще один сайт, работающий на другом поддомене, который успешно использует 3 контроллера Breeze. Бриз 1.5.1

Оба приложения Angular 1.3n

Приложение imi (проблема) использует один контроллер breeze с именем по умолчанию BreezeController.

Приложение представляет собой Hot Towel SPA и отлично работает в VS2013 с базой данных MSSQL, размещенной в Интернете.

Когда я загружаю веб-сайт в службу поддержки, при первом обращении к Breeze / Breeze / Metadata появляется ошибка 404.

http://imi.mysite.com/imi/breeze/Breeze/Metadata

в другом приложении

http://qui.mysite.com/qui/breeze/Quoting/Metadata

работает отлично.

Я сравнил файлы webconfig и настроил imi webconfig в соответствии с рабочим приложением.

это файлы, которые используются в рабочем приложении

 <package id="Angular.UI" version="0.4" targetFramework="net45" />
  <package id="Angular.UI.Bootstrap" version="0.12.0" targetFramework="net45" />
  <package id="angularjs" version="1.3.2" targetFramework="net45" />
  <package id="AngularJS.Animate" version="1.3.2" targetFramework="net45" />
  <package id="AngularJS.Core" version="1.3.2" targetFramework="net45" />
  <package id="AngularJS.Route" version="1.3.2" targetFramework="net45" />
  <package id="AngularJS.Sanitize" version="1.3.2" targetFramework="net45" />
  <package id="angularjs.TypeScript.DefinitelyTyped" version="2.2.2" targetFramework="net45" />
  <package id="angular-translate.TypeScript.DefinitelyTyped" version="0.9.0" targetFramework="net45" />
  <package id="bootstrap" version="3.3.0" targetFramework="net45" />
  <package id="Breeze.Angular" version="1.0.1" targetFramework="net45" />
  <package id="Breeze.Angular.Directives" version="1.3.9" targetFramework="net45" />
  <package id="Breeze.Client" version="1.5.1" targetFramework="net45" />
  <package id="Breeze.Server.ContextProvider" version="1.5.1" targetFramework="net45" />
  <package id="Breeze.Server.ContextProvider.EF6" version="1.5.1" targetFramework="net45" />
  <package id="Breeze.Server.WebApi2" version="1.5.1" targetFramework="net45" />
  <package id="Breeze.WebApi2.EF6" version="1.5.1" targetFramework="net45" />
  <package id="EntityFramework" version="6.1.1" targetFramework="net45" />
  <package id="FontAwesome" version="4.2.0" targetFramework="net45" />
  <package id="HotTowel.Angular" version="2.3.0" targetFramework="net45" />
  <package id="HotTowel.Angular.Breeze" version="2.3.0" targetFramework="net45" />

И это соответствующие файлы, которые используются в новом приложении, запущенном на том же веб-сервере.

package id="Angular.UI.Bootstrap" version="0.12.0" targetFramework="net45" />
  <package id="Angular.UI.Utils" version="0.2.1" targetFramework="net45" />
  <package id="AngularJS.Animate" version="1.3.8" targetFramework="net45" />
  <package id="AngularJS.Core" version="1.3.8" targetFramework="net45" />
  <package id="AngularJS.Route" version="1.3.8" targetFramework="net45" />
  <package id="AngularJS.Sanitize" version="1.3.8" targetFramework="net45" />
  <package id="angular-moment" version="0.9.0" targetFramework="net45" />
  <package id="angular-smart-table" version="1.4.8" targetFramework="net45" />
  <package id="bootstrap" version="3.3.2" targetFramework="net45" />
  <package id="Breeze.Angular" version="1.1.0" targetFramework="net45" />
  <package id="Breeze.Angular.Directives" version="1.3.9" targetFramework="net45" />
  <package id="Breeze.Client" version="1.5.3" targetFramework="net45" />
  <package id="Breeze.Server.ContextProvider" version="1.5.3" targetFramework="net45" />
  <package id="Breeze.Server.ContextProvider.EF6" version="1.5.3" targetFramework="net45" />
  <package id="Breeze.Server.WebApi2" version="1.5.3" targetFramework="net45" />
  <package id="EntityFramework" version="6.1.2" targetFramework="net45" />
  <package id="FontAwesome" version="4.2.0" targetFramework="net45" />
  <package id="HotTowel.Angular" version="2.3.3" targetFramework="net45" 

В приложении 1.5.3 первый вызов Breeze / Metadata завершается неудачно, как описано выше, хотя он не терпит неудачу при работе с той же строкой подключения из Visual Studio.

Я также обнаружил, что локально breezeSaveErrorExtensions.js выдает необработанную ошибку, что он не может найти ветерок при установке точно так же, как в приложении 1.5.1.

Мне не хватает файла, есть ли у меня несоответствие версий или есть критические изменения, которые я не принимаю во внимание?


person Charles Hankey    schedule 27.02.2015    source источник
comment
Слишком много движущихся частей и частей для эффективного ответа. Думаю, я бы попытался устранить v.1.5.3 как причину, откатившись до 1.5.1 в проблемном приложении ... и проверив, сохраняется ли проблема. Также какой URL-адрес возвращает метаданные и чем он отличается от URL-адреса, создаваемого клиентом Breeze?   -  person Ward    schedule 02.03.2015


Ответы (1)


Нет никаких свидетельств резкого изменения между Breeze 1.51 и 1.53.

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

В инструментах разработчика Chrome была ошибка 404 для возврата метаданных. Мог бы прояснить это намного быстрее, если бы я также протестировал в Firefox, который правильно сказал, что проблема в том, что BreezeWebApi2 нужно полностью доверять.

Добавление в файл web.config (как я это сделал давно, но забыл об этом в упомянутом выше приложении, которое отлично работало) решило проблему.

Мораль: инструменты разработчика браузера имеют свои сильные и слабые стороны, и тестирование с использованием нескольких инструментов браузера может быть весьма полезным в решении проблем.

person Charles Hankey    schedule 13.03.2015