【问题标题】:Breeze.js 1.53 possible breaking changes from Breeze.js 1.5.1Breeze.js 1.53 可能与 Breeze.js 1.5.1 相比发生重大变化
【发布时间】:2015-02-27 16:01:17
【问题描述】:

我在我的托管网站上为此应用程序使用了一个子域。所以 imi.{url} 直接进入应用程序所在的文件夹。微风 1.5.3

我有另一个站点在成功使用 3 个微风控制器的不同子域上运行。微风 1.5.1

两个应用 Angular 1.3n

imi(问题)应用使用一个默认名称为 BreezeController 的微风控制器。

该应用是一个 Hot Towel SPA,在 VS2013 中针对 Web 托管的 MSSQL 数据库运行良好。

当我将网站上传到服务时,第一次调用微风/微风/元数据得到 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 中的相同连接字符串运行时它不会失败。

我还发现,在本地,当安装在 1.5.1 应用程序中时,breezeSaveErrorExtensions.js 会引发一个未处理的错误,它无法找到微风。

我是否缺少文件、版本不匹配或是否存在我没​​有考虑到的重大更改?

【问题讨论】:

  • 活动部件太多,无法有效回答。我想我会尝试通过在问题应用程序中回滚到 1.5.1 来消除 v.1.5.3 的原因......并查看问题是否仍然存在。还有什么 URL 会返回元数据,它与 Breeze 客户端生成的 URL 有何不同?

标签: angularjs breeze hottowel


【解决方案1】:

没有证据表明 Breeze 1.51 和 1.53 之间发生了重大变化。

问题是未能完全信任 Breeze dll。这在本地运行时不是问题,但在部署时当然会成为问题。

在 Chrome 开发工具中,只有 404 错误无法返回元数据。如果我也在 Firefox 中进行了测试,它正确地表示问题在于 BreezeWebApi2 需要完全信任,则可以更快地清除它。

添加 在 web.config 中(就像我很久以前所做的那样,但忘记了在上面提到的应用程序中运行良好)解决了这个问题。

道德:浏览器开发工具各有优缺点,使用多种浏览器工具进行测试对于解决问题非常有帮助。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-07-11
    • 1970-01-01
    • 2013-02-25
    • 2012-11-28
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多