मैं देख रहा हूं कि बहुत से लोग इससे जूझ रहे हैंएक ही मुद्दा है, लेकिन कोई भी मुझे सही दिशा में नेतृत्व करने के लिए नहीं लगता है - शायद मैं सही ढंग से समझ नहीं पा रहा हूं, या मेरी स्थिति बस थोड़ी अलग है - मैंने एक एमवीसी ऐप बनाया है जो मेरे स्थानीय पर पूरी तरह से चलता है, लेकिन एक बार तैनात होने के बाद, मुझे निम्नलिखित मिलता है कंसोल में त्रुटियाँ:
संसाधन लोड करने में विफल: सर्वर ने 404 की स्थिति के साथ जवाब दिया )
संसाधन लोड करने में विफल: सर्वर ने 404 की स्थिति के साथ जवाब दिया (नहीं मिला): / एपीआई / सूचनाएं
संसाधन लोड करने में विफल: सर्वर ने 500 की स्थिति के साथ जवाब दिया (आंतरिक सर्वर त्रुटि) : BudgetingTool / खाता / UserDetails? SEARCHTERM = पीटर + पैन और _ = 1506510511716
अंतिम सबसे महत्वपूर्ण है क्योंकि यह डेटा वापस करने के लिए उपयोग किया जाता है। इसका कोड इस प्रकार है:
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);
}
जब मैं कंसोल में त्रुटि के लिए लिंक पर क्लिक करता हूं, तो यह वह प्रदर्शित करता है (जैसे कि कोई मूल्य नहीं है ???
"/ बजटिंगटूल" अनुप्रयोग में सर्वर त्रुटि।
वस्तु का संदर्भ वस्तु की आवृत्ति अनुसार सेट नहीं। है।
विवरण: निष्पादन के दौरान एक अनचाहे अपवाद हुआ वर्तमान वेब अनुरोध। अधिक के लिए कृपया स्टैक ट्रेस की समीक्षा करें त्रुटि के बारे में जानकारी और जहां यह कोड में उत्पन्न हुआ।
अपवाद विवरण: System.NullReferenceException: ऑब्जेक्ट संदर्भ नहीं किसी वस्तु के उदाहरण के लिए।
मुझे अभी समझ नहीं आया कि यह मेरे स्थानीय पर पूरी तरह से कैसे काम कर सकता है, लेकिन प्रकाशित नहीं होने पर और फिर एक दूरस्थ सर्वर पर तैनात किया जाता है।
फ़ोल्डर एक वर्चुअल डायरेक्टरी है और जिस फ़ोल्डर में प्रोजेक्ट फाइलें होती हैं, उसे "सभी" और "IIS_IUSR" के साथ साझा किया जाता है - दोनों ने पढ़ने / लिखने की अनुमति दी है।
सबसे सामान्य चीजें क्या हैं जिन्हें कोई भी देख सकता है? मुझे यकीन है कि यह कुछ इतना आसान है, लेकिन अभी यह पता नहीं चल पाया है कि यह क्या है :(
सही दिशा में किसी भी मदद से बहुत मदद मिलेगी।
धन्यवाद!
उत्तर:
जवाब के लिए 0 № 1वहाँ DevOps में एक कहावत है कि जाता है: "यह काम नहीं करता है", जब तक कि यह आपके विकास मशीन की तुलना में कहीं और काम नहीं करता है। "यहां, आपका कोड उस परीक्षण में विफल रहता है। एक विकास बॉक्स एक प्राचीन वातावरण है, आप इसे ठीक उसी तरह सेट करते हैं जैसे यह होना चाहिए, और यह सुनिश्चित करें कि आपका स्थानीय डेटाबेस पूरी तरह से सही डेटा है, आदि असली दुनिया बहुत कम क्षमा है, और जब आप एक डेटाबेस से क्वेरी चीजों की तरह सामान करते हैं, तो आपका उत्पादन वातावरण आपको अच्छा करेगा यदि आप ठीक से कोडित नहीं हैं।
किसी भी समय, जब आप किसी डेटाबेस से किसी चीज़ की क्वेरी करते हैं, तो आपको उस चीज़ के लिए खाता होना चाहिए जिसे आपने नहीं ढूंढा जा रहा है। चाहिए वहाँ हो, मर्फी का कानून कहता है कि यह जीता "कुछ बिंदु पर होना चाहिए। जब आपकी क्वेरी से कुछ भी नहीं लौटाया जाता है, तो चर शून्य पर सेट हो जाएगा, और यदि आप "अपने कोड में उचित नल-चेक नहीं कर रहे हैं, तो आपको मिलेगा" NullReferenceException
इस तरह से।
बस, ए NullReferenceException
इसका मतलब है कि आपने एक प्रकार के उदाहरण के वैध सदस्य तक पहुँचने का प्रयास किया था, लेकिन उस उदाहरण का वास्तव में अशक्त मूल्यांकन किया गया था, और अशक्त नहीं है कि विशेष सदस्य के पास है। उदाहरण के लिए:
organisation = _repository.FindOrganisationById(data.OrganisationId);
department = _departmentRepo.FindDepartmentById(organisation.DepartmentId);
यहाँ, आप यह मान रहे हैं कि Organization
उदाहरण मौजूद है, लेकिन यह बहुत अच्छी तरह से नहीं हो सकता है। का मान प्राप्त करने का प्रयास कर रहा है organization.DepartmentId
अगर आपके पास इसका उदाहरण है तो यह पूरी तरह से वैध है Organization
, लेकिन अगर आपके organization
चर वास्तव में अशक्त है, ठीक है, अशक्त doesn "t है a DepartmentId
सदस्य और उछाल: NullReferenceException
.
किसी भी समय आपके पास कोई भी चर है जो संभावित रूप से अशक्त हो सकता है, मान लें कि यह होगा और आपके कोड को तदनुसार डिजाइन करेगा।