1

Тема: Помилка Object reference not set to an instance of an object структури

Підкажіть будь ласка, як правильно використовувати поля структур в методах при роботі на сервері (на локалкі все працює). При запуску з сервера викидає помилку

Object reference not set to an instance of an object.
WebApplication2.XML.XMLB (string i, string j, Color_struct_art color_struct_art, Type_struct_art type_struct_art, Dimensions_struct_art dimensions_struct_art) in XML.cs
WebApplication2.Global.XMLB (string i, string j, int i) in Global.cs
WebApplication2.Controllers.XMLController.XML_Test (string i, string j) in XMLController.cs

Думаю, що проблема якраз у використанні структур, але не можу зрозуміти в чому саме.
Буду дуже вдячна за допомогу

2 Востаннє редагувалося Betterthanyou (15.01.2021 13:43:44)

Re: Помилка Object reference not set to an instance of an object структури

burlaka.dina написав:

як правильно використовувати поля структур в методах при роботі на сервері (на локалкі все працює).

Так само які і локально.
Можливо ви щось не правильно білдите ?

Object reference not set to an instance of an object.
Ця помилка може бути за того, що ви звернулися до об'єкта, якому не було виділено (оператором new) пам'яті

3

Re: Помилка Object reference not set to an instance of an object структури

Betterthanyou написав:
burlaka.dina написав:

як правильно використовувати поля структур в методах при роботі на сервері (на локалкі все працює).

Так само які і локально.
Можливо ви щось не правильно білдите ?

Object reference not set to an instance of an object.
Ця помилка може бути за того, що ви звернулися до об'єкта, якому не було виділено (оператором new) пам'яті

усі екземпляри передаю в методи таким чином 

public byte[] XMLB (string article, string id,
            Color_struct_art color_struct_art = new Color_struct_art(),
        Type_struct_art type_struct_art = new Type_struct_art())

різниця між класами на локалці і на сервері лише у наявності конструктора

public readonly IWebHostEnvironment _appEnvironment;

        public XML(IWebHostEnvironment appEnvironment)
        {
            _appEnvironment = appEnvironment;
        }

Не розумію, в чому може бути проблема

4

Re: Помилка Object reference not set to an instance of an object структури

В методі XMLB йде звернення до неініціалізованого об'єкта. Передивіться всі об'єкти, які використовуються в методі, який з них міг бути неініціалізованим або отримати значення null
Також проблема може бути в змінній типу String, якщо вона має значення null, а ви робите щось типу такого

  string str=null;
  
  str=str.Trim();   // або
  int len=str.Length;
Подякували: burlaka.dina1

5

Re: Помилка Object reference not set to an instance of an object структури

Engineer написав:

В методі XMLB йде звернення до неініціалізованого об'єкта. Передивіться всі об'єкти, які використовуються в методі, який з них міг бути неініціалізованим або отримати значення null
Також проблема може бути в змінній типу String, якщо вона має значення null, а ви робите щось типу такого

  string str=null;
  
  str=str.Trim();   // або
  int len=str.Length;

У мене не усі змінні структур використовуються у кожному методі, але у методи я передаю всю структуру, може у цьому причина? Але, коли запускаю локально, все працює, не розумію чому так

6

Re: Помилка Object reference not set to an instance of an object структури

А можна побачити весь код методу, де виникає помилка ?

Подякували: burlaka.dina1

7

Re: Помилка Object reference not set to an instance of an object структури

burlaka.dina написав:

Підкажіть будь ласка, як правильно використовувати поля структур в методах при роботі на сервері (на локалкі все працює).

Отже, один і той самий код на локалці працює, а не сервері ні?

burlaka.dina написав:

різниця між класами на локалці і на сервері лише у наявності конструктора

Тобто таки є різниця між кодом на сервері і на локалці, і серверний код не працює? А на локалці серверний код працює? А локальний на сервері?

burlaka.dina написав:

Не розумію, в чому може бути проблема

І правда, у чому ж?

8

Re: Помилка Object reference not set to an instance of an object структури

Engineer написав:

А можна побачити весь код методу, де виникає помилка ?

Тут є декілька методів, які пов'язані між собою, я додам файли, Цей контент доступний тільки зареєстрованим користувачам.
помилки виникають у місцях виклику методів, тобто

WebApplication2.XML_El.XMLhood(String article, String id, Color_struct_art color_struct_art, Type_struct_art type_struct_art, Dimensions_struct_art dimensions_struct_art, Filling_struct_id filling_struct_id, Glass_struct_id glass_struct_id, Color_struct_id color_struct_id, Openingconfig_struct_id openingconfig_struct_id):line 33
   at WebApplication2.Global_El.XMLhood(String article, String id, Int32 i):line 1379
   at WebApplication2.Controllers.XMLController.XML_Test(String article, String id):line 118

9

Re: Помилка Object reference not set to an instance of an object структури

koala написав:

Отже, один і той самий код на локалці працює, а не сервері ні?

Саме  так))

koala написав:

Тобто таки є різниця між кодом на сервері і на локалці, і серверний код не працює? А на локалці серверний код працює? А локальний на сервері?

Різниця лише у наявності конструктора, додам файли, тут XML_EL - класс для роботи на сервері, Saving_EL - на локалці Цей контент доступний тільки зареєстрованим користувачам.

koala написав:

І правда, у чому ж?

Можливо Ви підкажете?)

10

Re: Помилка Object reference not set to an instance of an object структури

burlaka.dina написав:
Engineer написав:

А можна побачити весь код методу, де виникає помилка ?

Тут є декілька методів, які пов'язані між собою, я додам файли, Цей контент доступний тільки зареєстрованим користувачам.
помилки виникають у місцях виклику методів, тобто

WebApplication2.XML_El.XMLhood(String article, String id, Color_struct_art color_struct_art, Type_struct_art type_struct_art, Dimensions_struct_art dimensions_struct_art, Filling_struct_id filling_struct_id, Glass_struct_id glass_struct_id, Color_struct_id color_struct_id, Openingconfig_struct_id openingconfig_struct_id):line 33
   at WebApplication2.Global_El.XMLhood(String article, String id, Int32 i):line 1379
   at WebApplication2.Controllers.XMLController.XML_Test(String article, String id):line 118

Ну так тут же все і маєте, як я підозрював

XML_El.XMLhood : :line 33 а там => 
string file_path = Path.Combine(_appEnvironment.ContentRootPath, "Files/WU_hood_Camellia.xml");
Я думаю, що у вас некоректний _appEnvironment, там просто null скоріш за все, тому й валиться

Подякували: burlaka.dina1

11

Re: Помилка Object reference not set to an instance of an object структури

Engineer написав:

XML_El.XMLhood : :line 33 а там => 
string file_path = Path.Combine(_appEnvironment.ContentRootPath, "Files/WU_hood_Camellia.xml");
Я думаю, що у вас некоректний _appEnvironment, там просто null скоріш за все, тому й валиться

а що зробити, щоб було не null? я ж наче б то передаю значення

12

Re: Помилка Object reference not set to an instance of an object структури

burlaka.dina написав:
Engineer написав:

XML_El.XMLhood : :line 33 а там => 
string file_path = Path.Combine(_appEnvironment.ContentRootPath, "Files/WU_hood_Camellia.xml");
Я думаю, що у вас некоректний _appEnvironment, там просто null скоріш за все, тому й валиться

а що зробити, щоб було не null? я ж наче б то передаю значення

У вас _appEnvironment передається через клас XMLController. Але визначення цієї змінної там не бачу. XMLController наслідує від базового класу Controller. Десь там має передаватися IWebHostEnvironment appEnvironment , напевно через конструктор.  Також треба перевірити конфігурацію контролерів у класі Startup, чи передається в контролер IWebHostEnvironment об'єкт

Подякували: burlaka.dina1

13

Re: Помилка Object reference not set to an instance of an object структури

Engineer написав:
burlaka.dina написав:
Engineer написав:

XML_El.XMLhood : :line 33 а там => 
string file_path = Path.Combine(_appEnvironment.ContentRootPath, "Files/WU_hood_Camellia.xml");
Я думаю, що у вас некоректний _appEnvironment, там просто null скоріш за все, тому й валиться

а що зробити, щоб було не null? я ж наче б то передаю значення

У вас _appEnvironment передається через клас XMLController. Але визначення цієї змінної там не бачу. XMLController наслідує від базового класу Controller. Десь там має передаватися IWebHostEnvironment appEnvironment , напевно через конструктор.  Також треба перевірити конфігурацію контролерів у класі Startup, чи передається в контролер IWebHostEnvironment об'єкт

Дякую Вам, буду розбиратись, я думала, що проблема у використанні структур, тому що раніше був один клас, який я вирішила трохи спростити таким чином

14

Re: Помилка Object reference not set to an instance of an object структури

Можете ще показати код класів Controller та Startup. Тоді, думаю, вже знайду де треба виправляти помилку

Подякували: burlaka.dina1

15

Re: Помилка Object reference not set to an instance of an object структури

Engineer написав:

Можете ще показати код класів Controller та Startup. Тоді, думаю, вже знайду де треба виправляти помилку

Величезне Вам дякую!!!
Цей контент доступний тільки зареєстрованим користувачам.

16 Востаннє редагувалося Engineer (16.01.2021 20:08:23)

Re: Помилка Object reference not set to an instance of an object структури

клас Controller то вже стандартний клас MVC. То я вас задалеко "послав". Мені треба знайти місце де визначена змінна _appEnvironment і де вона ініціалізується.
https://replace.org.ua/uploads/images/5702/e94bbd47dd49a08d9a4d02c73a772db8.png

Надішліть код того класу

Подякували: burlaka.dina1

17

Re: Помилка Object reference not set to an instance of an object структури

Та додайте вже той конструктор на сервер!
(у такі моменти починаєш розуміти ur_nazа)

Подякували: Arete, Betterthanyou, leofun013

18

Re: Помилка Object reference not set to an instance of an object структури

Engineer написав:

клас Controller то вже стандартний клас MVC. То я вас задалеко "послав". Мені треба знайти місце де визначена змінна _appEnvironment і де вона ініціалізується.
https://replace.org.ua/uploads/images/5702/e94bbd47dd49a08d9a4d02c73a772db8.png

Надішліть код того класу

аа, вона ініціалізується в класі XMLController таким чином

 private readonly IWebHostEnvironment _appEnvironment;
        public XMLController(IWebHostEnvironment appEnvironment)
        {
            _appEnvironment = appEnvironment;
        }

19

Re: Помилка Object reference not set to an instance of an object структури

Цей конструктор є і на сервері і на локалі ?

Бо якщо нема, то

koala написав:

Та додайте вже той конструктор на сервер!
(у такі моменти починаєш розуміти ur_nazа)

Подякували: Betterthanyou, burlaka.dina2

20

Re: Помилка Object reference not set to an instance of an object структури

koala написав:

Та додайте вже той конструктор на сервер!
(у такі моменти починаєш розуміти ur_nazа)

Що ви маєте на увазі, додати на сервер? Він і є на сервері, цим і відрізняється версія для локалки і для серверу. Куди мені його додати?