部署在服务器上的应用程序将无法在本地计算机上运行

时间:2018-08-04 14:52:30

标签: c# asp.net-mvc

我有一个使用c#和asp.net mvc(MVC5)开发的应用程序。我使用Visual Studio 2017的发布工具发布了可以在服务器上部署的应用程序的发布包。
该应用程序主要具有两个功能,一个用于注册学生,另一个用于注册他们的笔记。
注册学生的程序效果很好,我可以做所有与之相关的工作(编辑,删除等)
当我尝试为特定学生注册笔记时,出现错误。不管做什么我都不能注册笔记。
我的应用程序中有一个“ Error.cshtml”视图,每次尝试为学生注册笔记时,都会返回该视图。
最奇怪的问题是,在我的本地计算机上,一切正常(我可以同时注册学生及其笔记)。但是,一旦我在服务器上部署了相同的工作版本,便无法使用note功能。 以下是部分代码:

创建视图:

    <div class="form-group" id="id1">
    @Html.LabelFor(model => model.NotePremierTrimestre, htmlAttributes: new { @class = "control-label col-md-2" })
    <div class="col-md-10">
        @Html.EditorFor(model => model.NotePremierTrimestre, new { htmlAttributes = new { @class = "form-control", @id = "id01" } })
        @Html.ValidationMessageFor(model => model.NotePremierTrimestre, "", new { @class = "text-danger" })
    </div>
</div>

Resultats控制器:

 [HttpPost]
    [ValidateAntiForgeryToken]
    public ActionResult Save([Bind(Include = "IdResultat,NotePremierTrimestre,NoteDeuxiemeTrimestre,NoteTroixiemeTrimestre,NotePremierSemestre,NoteDeuxiemeSemestre,MoyenneGenerale,Mention,MoyenneCEPE,MoyenneFSLC,MoyenneBEPC,MoyenneCAP,MoyenneGCEO,MoyenneProbatoire,MoyenneBACC,MoyenneGCEA,MoyenneBTS,MoyenneDUT,MoyenneHND,MoyLicence,MoyMasterPro,MoyMasterRecherche,IdApprennant,IdAnnee")] Resultat resultat, [Bind(Include = "IdNoteDiscipline,Note,IdDiscipline,IdResultat")] NoteDiscipline noteDiscipline, string examenOfficiel)
    {
        if (ModelState.IsValid)
        {
            if (resultat.NotePremierTrimestre != null & resultat.NoteDeuxiemeTrimestre != null & resultat.NoteTroixiemeTrimestre != null)
            {
                resultat.MoyenneGenerale = (resultat.NotePremierTrimestre + resultat.NoteDeuxiemeTrimestre + resultat.NoteTroixiemeTrimestre) / 3;
            }
            else if (resultat.NotePremierSemestre != null & resultat.NoteDeuxiemeSemestre != null)
            {
                resultat.MoyenneGenerale = (resultat.NotePremierSemestre + resultat.NoteDeuxiemeSemestre) / 2;
            }
            else
            {
                resultat.MoyenneGenerale = 0;
            }

            if (examenOfficiel == "BEPC")
            {
                resultat.MoyenneBEPC = resultat.MoyenneCEPE;
            }
            else if (examenOfficiel == "CAP")
            {
                resultat.MoyenneCAP = resultat.MoyenneCEPE;
            }
            else if (examenOfficiel == "GCE O'Level")
            {
                resultat.MoyenneGCEO = resultat.MoyenneCEPE;
            }
            else if (examenOfficiel == "Probatoire")
            {
                resultat.MoyenneProbatoire = resultat.MoyenneCEPE;
            }
            else if (examenOfficiel == "Baccalauréat")
            {
                resultat.MoyenneBACC = resultat.MoyenneCEPE;
            }
            else if (examenOfficiel == "GCE A'Level")
            {
                resultat.MoyenneGCEA = resultat.MoyenneCEPE;
            }
            else if (examenOfficiel == "BTS")
            {
                resultat.MoyenneBTS = resultat.MoyenneCEPE;
            }
            else if (examenOfficiel == "Licence")
            {
                resultat.MoyLicence = resultat.MoyenneCEPE;
            }
            else if (examenOfficiel == "Master Professionnel")
            {
                resultat.MoyMasterPro = resultat.MoyenneCEPE;
            }
            else if (examenOfficiel == "Master Recherche")
            {
                resultat.MoyMasterRecherche = resultat.MoyenneCEPE;
            }
            else if (examenOfficiel == "HND")
            {
                resultat.MoyenneHND = resultat.MoyenneCEPE;
            }
            else
            {

            }

            //Vérification de la base de données pour voir si un apprenant avec cette note a déjà été enregistré
            //Resultat result2 = null;
            //try
            //{
            //    result2 = db.Resultats.Where(b => b.IdApprennant == resultat.IdApprennant && b.IdAnnee == resultat.IdAnnee).First();
            //} catch
            //{

            //}
            //if (result2 == null)
            //{
            db.Resultats.Add(resultat);

            db.SaveChanges();
            int id = resultat.IdResultat;
            noteDiscipline.IdResultat = id;

            db.NoteDisciplines.Add(noteDiscipline);
            db.SaveChanges();
            return RedirectToAction("Index");
            //}
        }

        ViewBag.IdAnnee = new SelectList(db.AnneeAcademiques, "IdAnnee", "Intitule", resultat.IdAnnee);
        ViewBag.IdApprennant = new SelectList(db.Apprenants, "IdApprenant", "Code", resultat.IdApprennant);
        //return View("Error");

        return View(resultat);
    }

使用以上代码,我希望将一些标记从视图发送到控制器,并重定向到“索引”视图或其他“创建”视图。这在我的机器上可以正常工作,并且服务器上也有相同的代码,但是一旦我键入一些标记并按下注册按钮,我就会返回“错误”视图。 另一个奇怪的事情是,返回“错误”视图的代码行已被注释,但仍显示在服务器中。

2 个答案:

答案 0 :(得分:1)

如果您将程序包托管到IIS服务器,请转到应用程序的基本设置,然后将物理路径更改为源代码,而不是构建程序包。然后从IIS运行您的应用程序,并将调试器保留在Visual Studio中的应用程序中。这样,您就可以从服务器运行应用程序时找出问题所在。

答案 1 :(得分:1)

实际上,您需要为ASP.Net应用程序配置IIS。在服务器上安装IIS时,只需选择所有asp.net选项。 请遵循此安装过程。我相信您将获得解决方案,并且该应用程序将作为本地计算机在服务器中运行。 https://www.logisofteducation.com/2018/08/how-to-install-iis-server.html

How to install iis server?