在本地主机上加载页面,但不能在Azure网站上加载页面-错误500

本文关键字:加载 网站 错误 Azure 但不能 主机 | 更新日期: 2023-09-27 17:49:41

我做了一个asp.net mvc 4应用程序部署到Windows Azure,当我在本地主机测试应用程序是一切运行正常,但在Azure网站,有一个视图返回错误500,我不知道为什么会发生,你能试着帮助我在这里吗?

这是视图:

@model IEnumerable<TestTcc2.Models.Musica>
@{
    ViewBag.Title = "Index";
    Layout = "~/Views/Shared/_LayoutMusico.cshtml";
}
<script src="Content/audiojs/audio.min.js"></script>
<div class="row">
<div class="col-md-4"></div>
<div id="divAudio" class="col-md-4">
    <audio id="audioPlay" src="x" preload="auto" onplay="true" />
    <script>
        audiojs.events.ready(function () {
            var as = audiojs.createAll({
                autoplay: true,
                autoload: "none"
            });
        });
        function replaceAll(str, de, para) {
            var pos = str.indexOf(de);
            while (pos > -1) {
                str = str.replace(de, para);
                pos = str.indexOf(de);
            }
            return (str);
        }
        function getUrlParameter(sParam) {
            var sPageURL = window.location.search.substring(1);
            var sURLVariables = sPageURL.split('&');
            for (var i = 0; i < sURLVariables.length; i++) {
                var sParameterName = sURLVariables[i].split('=');
                if (sParameterName[0] == sParam) {
                    var rep = replaceAll(sParameterName[1], "%2F", "/");
                    rep = replaceAll(rep, "%20", " ");
                    return rep;
                }
            }
        }
        var x = getUrlParameter('path');
        $('#audioPlay').attr('src', x);
    </script>
</div>
<div class="col-md-4"></div>
</div>
<br />
<p>
    @Html.ActionLink("Create New", "Create")
</p>
<table class="table table-hover table-bordered">
    <tr>
        <th>
            <span>Genero</span>
        </th>
        <th>
            <span>Nome</span>
        </th>
        <th>
            <span>Artista</span>
        </th>
        <th>
            <span>Preço</span>
        </th>
        <th></th>
    </tr>
@foreach (var item in Model) {
    if (item.UserId == Int32.Parse(Membership.GetUser().ProviderUserKey.ToString()))
    {
    <tr>
        <td>
            @Html.DisplayFor(modelItem => item.genero.Nome)
        </td>
        <td>
            @Html.DisplayFor(modelItem => item.Nome)
        </td>
        <td>
            @Html.DisplayFor(modelItem => item.NomeArtista)
        </td>
        <td>
            @Html.DisplayFor(modelItem => item.Preco)
        </td>
        <td>
            @Html.ActionLink("Play", "", new { path = item.path }) |
            @Html.ActionLink("Edit", "Edit", new { id=item.MusicaId }) |
            @Html.ActionLink("Download", "Download", new { path = item.path }) |
            @Html.ActionLink("Delete", "Delete", new { id=item.MusicaId })
        </td>
    </tr>
}
}
</table>

这是调用视图的控制器方法:

public ActionResult Index()
{
        var musicas = db.Musicas.Include(m => m.genero);
        var _arquivos = modelMusica.listaMusica();
        return View(musicas.ToList());
}

我尝试进行调试,但在localhost和azure中显示任何错误,显示以下消息:

错误。处理请求时发生错误。

在我的网上。我将CustomErrors设置为off,并将debug设置为false。

更新——

嘿,伙计们,我从Azure中获取DetailedError:

Detailed Error Information:
Module    ManagedPipelineHandler 
Notification    ExecuteRequestHandler 
Handler    System.Web.Mvc.MvcHandler 
Error Code    0x00000000 
Requested URL    http://independentmusicstore:80/Music 
Physical Path    D:'home'site'wwwroot'Music 
Logon Method    Forms 
Logon User    pedro 

在本地主机上加载页面,但不能在Azure网站上加载页面-错误500

您是否在eventlog.xml中看到错误?使用http://blogs.msdn.com/b/waws/archive/2014/09/24/azure-website-siteextension-to-view-eventlogs.aspx中提到的步骤来检查事件日志或直接转到yourazuresitename.scm.azurewebsites.net/support,然后选择您的站点并选择->分析,然后单击事件查看器…

未处理的异常冒泡为HTTP 500应该在事件查看器中记录。如果您在事件日志中没有看到任何条目,那么请在azure门户中的site -> configure中启用详细错误,并在d:'home'logfiles文件夹下查找详细错误文件夹(您可以通过kudu或ftp访问此文件夹)

看一下使用Visual Studio 2013远程调试windows Azure网站

试试这个:

导航到您的网站>>配置选项卡:

  1. 滚动到应用程序诊断>>启用应用程序日志记录(仅限文件系统)
  2. 滚动到站点诊断>>启用Web服务器日志记录(文件系统),启用详细的错误消息,启用失败的请求跟踪,启用远程调试(如果你想用VStudio调试)

回到你的网站仪表板,点击FTP主机名在快速浏览>>输入您的凭据>>检查日志文件

您还可以使用Kudu控制台下载日志,查看流,更改应用程序设置等:

输入

https://<yourwebsitename>.scm.azurewebsites.net
  • Tools>> Log Stream
  • 诊断转储(下载日志)
  • 调试控制台>> CMD或Powershell

我注意到的一件事是,您正在访问控制器方法中的数据库。连接字符串在Azure部署中的设置是否正确?如果将本地数据库测试连接字符串部署到Azure,则可能导致500错误。