/ / JQuery File 404 (introuvable) et 500 (erreur interne du serveur) après le déploiement de l'application MVC sur le serveur - jquery, asp.net-mvc, iis-7

Fichier JQuery 404 (introuvable) et 500 (erreur interne du serveur) après le déploiement de l'application MVC sur le serveur - jquery, asp.net-mvc, iis-7

Je vois qu'il y a beaucoup de gens qui luttent avec cettemême problème, mais aucun ne semble me conduire dans la bonne direction - peut-être que je ne comprends pas bien ou que ma situation est légèrement différente - j'ai créé une application MVC qui fonctionne parfaitement sur mon site local, mais une fois déployée, je reçois les éléments suivants: erreurs dans la console:

Échec du chargement de la ressource: le serveur a répondu avec un statut de 404 (Introuvable): glyphicons-halflings-regular.woff2

Échec du chargement de la ressource: le serveur a répondu avec un statut de 404 (Introuvable): / api / notifications

Échec du chargement de la ressource: le serveur a répondu avec un statut de 500 (Erreur Interne du Serveur) : BudgetingTool / Account / UserDetails? SearchTerm = Peter + Pan & _ = 1506510511716

Le dernier est le plus important car il est utilisé pour renvoyer des données. Son code est le suivant:

public ActionResult UserDetails(string searchTerm = null)
{
var data = UserManager.Users.FirstOrDefault(r => (r.FirstName + " " + r.LastName) == searchTerm);
IEnumerable<SelectListItem> rolesList = null;
IEnumerable<SelectListItem> organisationList = null;
Organisation organisation = null;
Department department = null;

if (data != null)
{
var userOrganisations = _organisationRepo.GetUserAssignedOrganisation(data.Id);
organisation = _repository.FindOrganisationById(data.OrganisationId);
department = _departmentRepo.FindDepartmentById(organisation.DepartmentId);
rolesList = ShowAllowedRoles(data.Id);
organisationList =
_repository.GetOrganisationsInHierarchyOrder(0,0,0).Select(r => new SelectListItem
{
Selected = userOrganisations.Any(x => x.OrganisationId == r.OrganisationId) ? true : false,
Text = r.Name,
Value = r.OrganisationId.ToString()
});
//SelectedOrganisations = OrganisationList.Where(x => x.Selected == true).ToList().Select(r=> new List<string>{ r.Value});
}
else
{
organisationList = _repository.GetOrganisationsInHierarchyOrder(0, 0, 0).GroupBy(m => m.Name).Select(y => y.First()).Select(r => new SelectListItem
{
Selected = false,
Text = r.Name,
Value = r.OrganisationId.ToString()
});
rolesList = GetRolesList();
}

var model = new UpdateUserInfoVM
{
Id = data == null ? string.Empty : data.Id,
FirstName = data == null ? string.Empty : data.FirstName,
LastName = data == null ? string.Empty : data.LastName,
Email = data == null ? string.Empty : data.Email,
Allowbudgetdeletion = data?.Allowbudgetdeletion ?? false,
LockoutEnabled = data?.LockoutEnabled ?? false,
//OrganisationId = data == null ? string.Empty : data.OrganisationId,
OrganisationId = data?.OrganisationId ?? 0,
Organisations = organisationList,
Roles = rolesList,
AccessFailedCount = data?.AccessFailedCount ?? 0,
LockoutEndDateUtc = data?.LockoutEndDateUtc,
AllowEditing = data.AllowEditing,
DistrictOrUrban = data?.DistrictOrUrban,
departmentId = organisation.DepartmentId,
DepartmentType = department.Name
//SelectedOrganisations = SelectedOrganisations
};

return PartialView("_ShowUserInfo", model);
//return Request.IsAjaxRequest() ? PartialView("_ShowUserInfo", model) : PartialView("_ShowUserInfo", model);
}

Lorsque je clique sur le lien pour l'erreur dans la console, c'est ce qui s'affiche (comme si aucune valeur n'était transmise ???

Erreur de serveur dans l'application "/ BudgetingTool".

La référence d'objet n'est pas définie à une instance d'un objet.

Description: une exception non gérée s'est produite lors de l'exécution de la demande Web en cours. S'il vous plaît examiner la trace de la pile pour plus informations sur l'erreur et son origine dans le code.

Détails des exceptions: System.NullReferenceException: Référence d'objet non définir sur une instance d'un objet.

Je ne comprends tout simplement pas comment cela peut fonctionner si parfaitement sur mon site local, mais pas lorsqu'il est publié puis déployé sur un serveur distant.

Le dossier est un répertoire virtuel et le dossier contenant les fichiers de projet est partagé avec "Tout le monde" et "IIS_IUSR" - les deux ont l'autorisation de lecture / écriture.

Quelles sont les choses les plus générales que l'on peut rechercher? Je suis sûr que c'est quelque chose de si simple, mais je ne peux tout simplement pas trouver ce que c'est :(

Toute aide dans la bonne direction serait d'une grande aide.

Merci!

Réponses:

0 pour la réponse № 1

Il y a un dicton dans DevOps qui dit: "Cela ne fonctionne pas, sauf si cela fonctionne ailleurs que sur votre machine de développement". Ici, votre code échoue à ce test. Une boîte de développement est un environnement vierge, vous la configurez exactement comme elle devrait être et vous vous assurez que votre base de données locale a des données absolument correctes, etc. Le monde réel est beaucoup moins clément, et lorsque vous faites des choses comme des requêtes dans une base de données, votre environnement de production vous va bien si vous n’avez pas codé cela correctement.

À savoir, chaque fois que vous interrogez quelque chose dans une base de données, vous devez tenir compte de ce que vous demandez de ne pas trouver. devrait soyez là, la loi de Murphy dit qu'il ne sera pas à un moment donné. Lorsque rien ne sera renvoyé de votre requête, la variable sera définie sur null et si vous ne faites pas les vérifications nulles appropriées dans votre code, vous obtiendrez NullReferenceExceptionC'est comme ça.

Simplement, un NullReferenceException signifie que vous avez tenté d'accéder à un membre valide d'une instance de type, mais que cette instance est évaluée à null et que null n'a pas ce membre particulier. Par exemple:

organisation = _repository.FindOrganisationById(data.OrganisationId);
department = _departmentRepo.FindDepartmentById(organisation.DepartmentId);

Ici, vous supposez que le Organization exemple existe, mais il se peut fort bien que non. Tenter de récupérer la valeur de organization.DepartmentId est parfaitement valable si vous avez une instance de Organizationmais si votre organization la variable est en fait nulle, eh bien, null n’a pas de "t" DepartmentId membre et boom: NullReferenceException.

Chaque fois que vous avez une variable potentiellement nulle, supposez qu'elle le sera et concevez votre code en conséquence.