2

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

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

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

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

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

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

4

2 回答 2

1

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

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

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

<配置>
    <system.web>
        <customErrors mode="关闭"/>
    </system.web>
</配置>

我的第二个建议:查看John Papa 关于将 MVC Web API 应用程序部署到 Azure 网站的帖子。它非常好。我知道它有效。

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

于 2013-01-27T08:56:23.763 回答
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 来检查这一点。我通过在发布时选择正确的连接字符串来修复它:

发布到 Azure

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

于 2014-06-06T16:16:27.640 回答