我在托管网站上为此应用程序使用子域名。所以imi。{url}直接进入应用程序的文件夹。微风1.5.3
我有另一个站点在不同的子域上运行,该子域成功使用3个breeze控制器。微风1.5.1
两个应用Angular 1.3n
imi(问题)应用程序使用单个breeze控制器,默认名称为BreezeController。
该应用程序是一个Hot Towel SPA,在VS2013中针对Web托管的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" />
这些是在新应用中使用的相关文件,在同一个Web服务器上运行
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应用程序完全相同的微风。
我错过了一个文件,我是否有版本不匹配或是否有一个重大变化我没有考虑到?
答案 0 :(得分:1)
没有证据表明Breeze 1.51和1.53之间存在重大变化。
问题是未能完全信任Breeze dlls。这在本地运行时不是问题,但在部署时当然会成为问题。
在Chrome开发工具中,只有404失败才能返回元数据。如果我还在Firefox中进行了测试,并且正确地说问题是BreezeWebApi2需要完全信任,那么可以更快地清除它。
添加 在web.config中(正如我很久以前所做的那样,但在上面提到的应用程序中忘记了工作正常)解决了这个问题。
道德:浏览器开发工具有自己的优点和缺点,使用多种浏览器工具进行测试对解决问题非常有帮助。