我最近开发了一个C#ASP.NET MVC 4.5应用程序,部署之后我遇到了一些奇怪的问题。我在 VS2015 上开发了应用程序并将其部署在 IIS8 ( WINDOWS SERVER 2012 )和 IIS7 ( WINDOWS SERVER 2008 R2 )。我在服务器上遇到这个问题,但VS2015上没有开发应用程序。
首先,这是服务器返回的错误:image of the error
这是usercontroller.cs的代码:
using MAGELLANAdminV2.Models;
using System;
using System.Collections.Generic;
using System.IO;
using System.Linq;
using System.Web;
using System.Web.Mvc;
namespace MAGELLANAdminV2.Controllers
{
public class UsersController : Controller
{
private MGLV1_DEV01Entities db = new MGLV1_DEV01Entities();
private List<KeyValuePair<string, List<FUNC_LIST_USERS_Result>>> list_user;
private List<FUNC_LIST_USERS_Result> list_users;
private List<FUNC_LIST_GROUPE_Result> list_groupe;
private List<KeyValuePair<string,List<FUNC_LIST_Module_Result>>> list_module;
private List<FUNC_LIST_Module_Result> list_modules;
// GET: Users
public ActionResult Index()
{
list_groupe = db.FUNC_LIST_GROUPE().ToList();
ViewBag.list_modules = list_modules = db.FUNC_LIST_ALL_Module().ToList();
ViewBag.list_u = list_users = db.FUNC_LIST_ALL_USERS().ToList();
list_module = new List<KeyValuePair<string, List<FUNC_LIST_Module_Result>>>();
list_user = new List<KeyValuePair<string, List<FUNC_LIST_USERS_Result>>>();
foreach (FUNC_LIST_GROUPE_Result res in list_groupe)
{
list_module.Add(new KeyValuePair<string, List<FUNC_LIST_Module_Result>>(res.GROUP_NOM, db.FUNC_LIST_Module(res.GROUP_NOM).ToList()));
list_user.Add(new KeyValuePair<string, List<FUNC_LIST_USERS_Result>>(res.GROUP_NOM,db.FUNC_LIST_USERS(res.GROUP_NOM).ToList() ) );
}
ViewBag.list_module = list_module;
ViewBag.list_user = list_user;
//System.Diagnostics.Debug.WriteLine("cred =" + HttpContext.Application["users"].ToString());
try
{
if (HttpContext.Application["users"].ToString().Equals("False"))
return RedirectToAction("Nocredential", "Home");
else
return View();
}
catch(Exception e)
{
return RedirectToAction("Index", "Home");
}
}
public ActionResult AjouterUtilisateur()
{//line 54///
string usernames = Request.Form["userschoi"];
string newusername = Request.Form["username"];
string groupename = Request.Form["groupename"];
string[] users = usernames.Split(',');
//System.Diagnostics.Debug.WriteLine("usernames:" + usernames+ " ////// newusername= "+ newusername);
db.PS_DELETE_USER(groupename);
for(int i = 0; i<users.Length; i++)
{
db.PS_ADD_USER_TO_GROUPE(groupename, users[i]);
}
if(newusername!=null && !newusername.Equals(""))
{
db.PS_ADD_USER(newusername);
db.PS_ADD_USER_TO_GROUPE(groupename, newusername);
}
list_groupe = db.FUNC_LIST_GROUPE().ToList();
ViewBag.list_modules = list_modules = db.FUNC_LIST_ALL_Module().ToList();
ViewBag.list_u = list_users = db.FUNC_LIST_ALL_USERS().ToList();
list_module = new List<KeyValuePair<string, List<FUNC_LIST_Module_Result>>>();
list_user = new List<KeyValuePair<string, List<FUNC_LIST_USERS_Result>>>();
foreach (FUNC_LIST_GROUPE_Result res in list_groupe)
{
list_module.Add(new KeyValuePair<string, List<FUNC_LIST_Module_Result>>(res.GROUP_NOM, db.FUNC_LIST_Module(res.GROUP_NOM).ToList()));
list_user.Add(new KeyValuePair<string, List<FUNC_LIST_USERS_Result>>(res.GROUP_NOM, db.FUNC_LIST_USERS(res.GROUP_NOM).ToList()));
}
ViewBag.list_module = list_module;
ViewBag.list_user = list_user;
try
{
if (HttpContext.Application["users"].ToString().Equals("False"))
return RedirectToAction("Nocredential", "Home");
else
return PartialView();
}
catch (Exception e)
{
return RedirectToAction("Index", "Home");
}
}
public ActionResult Supprimergroupe(string nom)
{
if (nom != null)
db.PS_DELETE_GROUP(nom);
list_groupe = db.FUNC_LIST_GROUPE().ToList();
ViewBag.list_modules = list_modules = db.FUNC_LIST_ALL_Module().ToList();
ViewBag.list_u = list_users = db.FUNC_LIST_ALL_USERS().ToList();
list_module = new List<KeyValuePair<string, List<FUNC_LIST_Module_Result>>>();
list_user = new List<KeyValuePair<string, List<FUNC_LIST_USERS_Result>>>();
foreach (FUNC_LIST_GROUPE_Result res in list_groupe)
{
list_module.Add(new KeyValuePair<string, List<FUNC_LIST_Module_Result>>(res.GROUP_NOM, db.FUNC_LIST_Module(res.GROUP_NOM).ToList()));
list_user.Add(new KeyValuePair<string, List<FUNC_LIST_USERS_Result>>(res.GROUP_NOM, db.FUNC_LIST_USERS(res.GROUP_NOM).ToList()));
}
ViewBag.list_module = list_module;
ViewBag.list_user = list_user;
try
{
if (HttpContext.Application["users"].ToString().Equals("False"))
return RedirectToAction("Nocredential", "Home");
else
return PartialView();
}
catch (Exception e)
{
return RedirectToAction("Index", "Home");
}
}
public ActionResult Ajoutergroupe()
{
string groupename = Request.Form["groupename"];
if(groupename!=null)
db.PS_ADD_GROUPE(groupename);
list_groupe = db.FUNC_LIST_GROUPE().ToList();
ViewBag.list_modules = list_modules = db.FUNC_LIST_ALL_Module().ToList();
ViewBag.list_u = list_users = db.FUNC_LIST_ALL_USERS().ToList();
list_module = new List<KeyValuePair<string, List<FUNC_LIST_Module_Result>>>();
list_user = new List<KeyValuePair<string, List<FUNC_LIST_USERS_Result>>>();
foreach (FUNC_LIST_GROUPE_Result res in list_groupe)
{
list_module.Add(new KeyValuePair<string, List<FUNC_LIST_Module_Result>>(res.GROUP_NOM, db.FUNC_LIST_Module(res.GROUP_NOM).ToList()));
list_user.Add(new KeyValuePair<string, List<FUNC_LIST_USERS_Result>>(res.GROUP_NOM, db.FUNC_LIST_USERS(res.GROUP_NOM).ToList()));
}
ViewBag.list_module = list_module;
ViewBag.list_user = list_user;
try
{
if (HttpContext.Application["users"].ToString().Equals("False"))
return RedirectToAction("Nocredential", "Home");
else
return PartialView();
}
catch (Exception e)
{
return RedirectToAction("Index", "Home");
}
}
public ActionResult AjouterModule()
{
string groupename = Request.Form["groupename"];
string modules = Request.Form["moduleschoi"];
string[] module = modules.Split(',');
for(int i = 0; i < module.Length; i++)
{
db.PS_ADD_GROUPE_TO_MOD(groupename, module[i]);
}
list_groupe = db.FUNC_LIST_GROUPE().ToList();
ViewBag.list_modules = list_modules = db.FUNC_LIST_ALL_Module().ToList();
ViewBag.list_u = list_users = db.FUNC_LIST_ALL_USERS().ToList();
list_module = new List<KeyValuePair<string, List<FUNC_LIST_Module_Result>>>();
list_user = new List<KeyValuePair<string, List<FUNC_LIST_USERS_Result>>>();
foreach (FUNC_LIST_GROUPE_Result res in list_groupe)
{
list_module.Add(new KeyValuePair<string, List<FUNC_LIST_Module_Result>>(res.GROUP_NOM, db.FUNC_LIST_Module(res.GROUP_NOM).ToList()));
list_user.Add(new KeyValuePair<string, List<FUNC_LIST_USERS_Result>>(res.GROUP_NOM, db.FUNC_LIST_USERS(res.GROUP_NOM).ToList()));
}
ViewBag.list_module = list_module;
ViewBag.list_user = list_user;
try
{
if (HttpContext.Application["users"].ToString().Equals("False"))
return RedirectToAction("Nocredential", "Home");
else
return PartialView();
}
catch (Exception e)
{
return RedirectToAction("Index", "Home");
}
}
public ActionResult SupprimerModule(string nom , string groupename)
{
if (nom != null && groupename != null)
db.PS_DELETE_MOD_GROUP(groupename, nom);
list_groupe = db.FUNC_LIST_GROUPE().ToList();
ViewBag.list_modules = list_modules = db.FUNC_LIST_ALL_Module().ToList();
ViewBag.list_u = list_users = db.FUNC_LIST_ALL_USERS().ToList();
list_module = new List<KeyValuePair<string, List<FUNC_LIST_Module_Result>>>();
list_user = new List<KeyValuePair<string, List<FUNC_LIST_USERS_Result>>>();
foreach (FUNC_LIST_GROUPE_Result res in list_groupe)
{
list_module.Add(new KeyValuePair<string, List<FUNC_LIST_Module_Result>>(res.GROUP_NOM, db.FUNC_LIST_Module(res.GROUP_NOM).ToList()));
list_user.Add(new KeyValuePair<string, List<FUNC_LIST_USERS_Result>>(res.GROUP_NOM, db.FUNC_LIST_USERS(res.GROUP_NOM).ToList()));
}
ViewBag.list_module = list_module;
ViewBag.list_user = list_user;
try
{
if (HttpContext.Application["users"].ToString().Equals("False"))
return RedirectToAction("Nocredential", "Home");
else
return PartialView();
}
catch (Exception e)
{
return RedirectToAction("Index", "Home");
}
}
}
}
所以,如果有人可以帮我解决这个问题,请!!! 另外我还有一个问题,那就是它在错误文本中显示我的本地DEV文件夹,即使它是在服务器(IIS8)上运行的,它也不是同一条路径!
哦!我很确定NULLREFERENCEEXCEPTION不是由于代码中的某些东西,因为代码在VS2015 - VS2013的本地环境中工作正常,但不能在部署服务器上工作(WS2012和WS2008R2我已经测试过了我不知道它是否适用于其他WS!)。让我看到的第二个原因是我从服务器获得的错误消息,它显示了我的机器上的本地路径我是否已经开发了应用程序而不是服务器存储库的路径是应用程序已经打开并且我认为这是问题,但我找不到理由。
所以,如果您有任何建议的想法,可以帮助我,感谢分享,这将是非常有帮助的!