Breeze元数据返回504错误

时间:2013-11-11 10:59:35

标签: asp.net-web-api breeze azure-virtual-machine

我遇到了Breeze的一个问题,当我尝试在我的控制器上调用元数据操作时,它们会因504错误而失败。

近似的电话是 //服务器/微风/控制器/元数据

环境

在负载均衡的Win 2k8 Azure虚拟机上通过IIS7运行的Web Api

版本(通过NuGet安装) Breeze Client 1.4.2 Breeze客户端和服务器1.4.2 Breeze Server - 适用于ASP.NET Web Api(Core)1.4.2 Breeze Server - 适用于ASP.NET Web Api和Entity Framework 1.4.2

  

更新:升级到Breeze 1.4.5没有任何区别

以前它运行良好,最近唯一的变化就是引入负载均衡。

值得注意的是,我还有多个控制器,每个控制器都有自己的元数据。

成功运行的案例

  • 通过localhost运行。
  • 从我的控制器中删除[BreezeController]属性
  • 重命名元数据功能

失败的案例

  • 部署时
  • 运行简单测试以返回字符串时,例如:

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

出于某种原因,Breeze似乎不喜欢我的控制器中的元数据功能。

更新

它看起来与使用负载平衡端点没有特别相关,因为我尝试将其设置为直接在端口8080上运行,并且具有非负载平衡端点并且具有相同的问题。

IIS失败请求跟踪似乎没有记录失败请求的任何内容,尽管请求确实出现在IIS日志中。

1 个答案:

答案 0 :(得分:1)

从0.72更新到1.41并将路径从api / {controller} / {action}更改为breeze / {controller} / {action}后,我遇到了同样的问题。我没有得到微风人的回答所以我撤回了这个问题。

但是,我现在认为问题是权限。 Localhost:VS中的50033作为我运行,我有一个SQL Server帐户,所以我觉得它很酷。部署到我的本地IIS和测试服务器IIS后,我收到500错误。

我终于进入了jquery代码,并从jqXHR确定,错误是SQL没有处理匿名用户的凭据;一个Doh!如果有的话,那一刻。我在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"/>

这不太安全,但我在防火墙内部运行,所以对我来说这不是问题。

所以我的答案是检查您对群集的权限。我希望这会有所帮助。