0

所以最后我将我的 MVC 应用程序发布到 Azure 云服务。我的数据库也在上面。将 WindowsAzure 项目添加到我的解决方案并将我的 2 个项目(模型和 Web)添加为角色后,我可以在本地运行该应用程序。

但是当我运行 URL 时出现错误:

说明:服务器上发生应用程序错误。此应用程序的当前自定义错误设置可防止远程查看应用程序错误的详细信息(出于安全原因)。但是,它可以被本地服务器机器上运行的浏览器查看。

所以我设置并重新发布,但我仍然得到同样的错误

我需要强制 Azure 告诉我发生了什么并揭示错误,有人知道吗?

http://bizoptcloudservice01.cloudapp.net

4

2 回答 2

2

不,Azure 云服务中没有内置日志。您可以实现自己的,但这涉及一些实现。在我的解决方案中,我创建了一个自定义错误页面。我的网络配置如下所示:

<customErrors mode="On" defaultRedirect="~/error/Error">
 ...
</customErrors>

我的视图/共享目录中有一个名为“Error.cshtml”的视图。使用上面的配置,只要我的应用程序出现错误,就会显示它。

@model System.Web.Mvc.HandleErrorInfo

@{
    ViewBag.Title = "Error";
}

<h2> Sorry, an error occurred while processing your request!!?!</h2>

<div>
    Try again.  If the problem persists...
    Close all your browser windows and re-login to the application. If the problem still persists...
    Contact the service desk with the details of this error.
</div>

        <h3>Error Details</h3>
        <div>
        <strong>
        @Model.Exception.Message
        </strong>
            <pre>@Model.Exception.StackTrace</pre>
    </div>
    </div>
</div>  

此外,为了使上述工作正常,您需要将其添加到 Global.ascx.cs。它定义了出现错误时应用程序的默认行为。像这样:

    public static void RegisterGlobalFilters(GlobalFilterCollection filters)
    {
        filters.Add(new HandleErrorAttribute()); 
    }

这是一篇博客文章,其中详细讨论了它。

那篇文章和这个答案也记录了错误。如果你想走那条应该让你开始的路线:

在 ASP.NET MVC 控制器结果中设置 HTTP 状态不会呈现视图

于 2013-01-14T14:25:54.840 回答
1

检查您是否没有使用转换覆盖您的 web.config 设置。适用于 MVC 项目的 Visual Studio 2012 模板会自动将此行添加到 web.config.release 文件中:

发布应用程序时,您的 web.config 可能正在转换。

编辑:另外,您可能想查看 ELMAH,它是一个很棒的日志记录工具,很容易添加到您的项目中,并且会让您看到每个错误的信息丢失:

于 2013-02-14T05:23:00.287 回答