将我的Breeze应用程序部署到Azure网站和元数据查询失败

时间:2013-01-22 02:46:23

标签: azure breeze

刚开始使用Breeze和Azure。我下载了示例应用程序并添加了自己的控制器。在我的本地机器上工作得很好。当我部署到我的Azure站点时,我在页面的日志记录部分中不断收到以下错误:查询失败:元数据查询失败:api / CoreData / Metadata;发生错误。

我有一个名为Products的控制器只返回一个视图。该视图包含对我的CoreData ApiController的js调用。关注样本。

服务器上记录的唯一内容如下: 500

起初我使用EF来访问数据,但已经改为只创建一个内存中对象并将其返回以消除数据库问题。

网址为http://acapella.azurewebsites.net/products。我花了很多时间来尝试诊断和研究,但觉得我忽视了一些简单的事情。

任何帮助或建议都将不胜感激。

2 个答案:

答案 0 :(得分:1)

Azure网站是一种免费,相对简单的方式来部署Breeze应用程序,您可以在各种移动设备上测试它,体验应用程序的响应能力(或缺乏响应能力)。

我在将一个Breeze应用程序推送到Azure网站上取得了很大的成功,但有很多失误,包括一些看起来像你的应用程序。

两个想法。首先,您需要在Web.config中关闭“自定义错误”。

<configuration>
    <system.web>
        <customErrors mode="Off"/>
    </system.web>
</configuration>

我的第二个建议:看看John Papa's post on deploying an MVC Web API app to an Azure web site。这很棒。我知道它有效。

我希望很快能有关于这个过程的视频。

答案 1 :(得分:0)

您可以做的第一件事就是返回异常。在你的Breeze控制器中执行以下操作:

[HttpGet]
public string Metadata()
{
    try
    {
        return _contextProvider.Metadata();
    }
    catch (Exception e)
    {
        return e.Message + Environment.NewLine + Environment.NewLine + e.StackTrace;
    }
}

这让我很清楚我的连接字符串出了什么问题。我得到的例外是:

Format of the initialization string does not conform to specification starting at index 0.

我的本​​地连接字符串似乎没问题,但问题出在Azure上。我的web.release.config有一个正确的转换,但在发布时,Visual Studio会添加另一个连接字符串。您可以通过将FTP连接到Azure站点并查看web.config来进行检查。我通过在发布时选择正确的连接字符串来修复它:

Publishing to Azure

之后,我上传的web.config中似乎仍然有两个连接字符串,但至少它可以工作。