Asp.net mvc 项目发布后给我内部服务器错误

Posted

技术标签:

【中文标题】Asp.net mvc 项目发布后给我内部服务器错误【英文标题】:Asp.net mvc project give me internal server error after publisihng 【发布时间】:2015-11-16 16:34:34 【问题描述】:

发布 asp.net mvc 项目后,我注意到在调试模式下调用链接 http://localhost:56881/CPanel/login?role=form 时的 localhost 它正常返回登录视图。

但在发布后尝试调用http://domainname.com/CPanel/login?role=form 它给了我 500 - 内部服务器错误。

//Login Action >> CPanel Controller 
public ActionResult login() 

    return View();


[HttpPost]
public ActionResult login(FormCollection customer, string ReturnUrl) 

    ViewBag.isError = false;
    if (Session["SystemAdmin"] == null)
    
        var u = new Egx.EgxBusiness.Inventory.User()  USER_NAME = customer["EMAIL_ADDR"] .Search();
        Crypto.VerifyHashedPassword(u[0].PASSWORD, customer["password"]);
        if (u.Count > 0 && Crypto.VerifyHashedPassword(u[0].PASSWORD, customer["password"]))
        
            var c = new Customers()  EMAIL_ADDR = customer["EMAIL_ADDR"] .Search();
            FormsAuthentication.SetAuthCookie(c[0].CUST_NAME, false);
            Session["_customer"] = c[0];
            if (Url.IsLocalUrl(ReturnUrl) && ReturnUrl.Length > 1 && ReturnUrl.StartsWith("/")
                && !ReturnUrl.StartsWith("//") && !ReturnUrl.StartsWith("/\\"))  return Redirect(ReturnUrl); 
            else
            
                return RedirectToAction("Index");
            
        
        else
        
            ViewBag.isError = true;
            return View();
        
    
    else 
    
        var c = new Customers()  EMAIL_ADDR = customer["EMAIL_ADDR"] .Search();
        if (c.Count == 0)  c = new Customers() CUST_CODE=customer["EMAIL_ADDR"] .Search(); 
        if (c.Count > 0)
        
            Session["_customer"] = c[0];
                 return RedirectToAction("Index");
         
        else
        
            ViewBag.isError = true;
            return View();
        
    

登录查看

@using (html.BeginForm("login", "CPanel", new  ReturnUrl = Request.QueryString["ReturnUrl"], role = "form" ))

     if (Request.QueryString["r"] != null)  <input type="hidden" value="@Request.QueryString["r"]" name="r"/> 
        <div class="form-group">
            <input  class="form-control" placeholder="E-mail" name="EMAIL_ADDR" type="text" autofocus>
        </div>
        <div class="form-group">
            <input class="form-control" placeholder="Password" name="password" type="password" value="" @Html.Raw(EgxNMWeb.AuthSystemAdmin.isSystemAdmin()? "disabled":string.Empty)>
        </div>
        <div class="checkbox">
            <label>
                <input name="remember" type="checkbox" value="Remember Me">Remember Me
            </label>
        </div>
        <!-- Change this to a button or input when using this as a form -->
        <input type="submit" value="Login" class="btn btn-lg btn-success btn-block" />
        @Html.Raw(EgxNMWeb.AuthSystemAdmin.isSystemAdmin()? "<a href="+Url.Action("Index","Finance")+">ماليات</a>":string.Empty)

【问题讨论】:

其他页面是否正常工作? 是的,一切都很好 【参考方案1】:

尝试做一个干净的解决方案并重新构建并发布它。此外,将自定义错误模式设置为关闭。如果您能给我们一个具体的错误,我们可能会为您提供更多帮助。还要确保本地计算机上的身份验证模式与您发布的服务器上的身份验证模式相匹配。

【讨论】:

我试图清理解决方案重建但没有任何改变:( 我注意到 ReturnUrl 在远程服务器上不起作用,但在 localhost 中可以正常工作! 您是否更改了 Web 配置文件中的自定义错误模式?那应该给你一个更具体的错误。试试看,让我知道具体的错误是什么。 另外,我猜测其他页面是否正常工作,只有登录视图不工作,这可能是您的视图文件没有正确发布,或者您的远程服务器上的身份验证模式设置不正确。身份验证模式是指 Windows、匿名等 我将自定义错误模式更改为开,但它给了我同样的错误 500 - 内部服务器错误。您要查找的资源有问题,无法显示。

以上是关于Asp.net mvc 项目发布后给我内部服务器错误的主要内容,如果未能解决你的问题,请参考以下文章

来自 Javascript AJAX 的 ASP.NET MVC 操作调用收到 500 内部服务器错误

跟我学ASP.NET MVC之三:一个完整的ASP.NET MVC程序

ASP .NET MVC 500 内部服务器错误 - 在获取和发布时 - 相同的应用程序/不同的服务器

asp.net mvc oracle 做的增删改查功能,给我份源码。

ASP.NET中MVC的理解

在两台物理服务器中托管 ASP.NET MVC 项目