Member 13522501 Ответов: 1

Ошибка после запуска webservice в url


привет

я пишу веб-сервис.
когда я запускаю его в localhost, он работает нормально.
но после загрузки его в мой хост он тоже работает (регистрирует данные в БД). но покажите ошибку.

вот сообщение об ошибке:
Ошибка сервера в приложении'/'.
Ссылка на объект не устанавливается на экземпляр объекта.
Описание: необработанное исключение возникло во время выполнения текущего веб-запроса. Пожалуйста, просмотрите трассировку стека для получения дополнительной информации об ошибке и о том, где она возникла в коде.

Сведения об исключении: System.NullReferenceException: ссылка на объект не установлена на экземпляр объекта.

Ошибка Источника:

Необработанное исключение было сгенерировано во время выполнения текущего веб-запроса. Информацию о происхождении и местоположении исключения можно определить с помощью приведенной ниже трассировки стека исключений.

трассировка стека:


[NullReferenceException: ссылка на объект не установлена на экземпляр объекта.]
DOAdverisingModule.AdsModule.context_PostRequestHandlerExecute(отправитель объекта, EventArgs e) +295
System.Web.SyncEventExecutionStep.System.Web.HttpApplication.IExecutionStep.Execute() +141
Системы.Веб.Класса HttpApplication.ExecuteStepImpl(шаг IExecutionStep) +48
Системы.Веб.Класса HttpApplication.ExecuteStep(IExecutionStep step, Boolean& completedSynchronously) +71

Информация о версии: Microsoft .NET Framework версия:4.0.30319; ASP.NET версия:4.7.3163.0


--------------------------------------------------------------
вот код веб-сервиса
[WebMethod]
        public void insert_into_test_tbl(string name, int grade)
        {
            con = new SqlConnection(conString);
            SqlCommand cmd = con.CreateCommand();
            SqlTransaction tr;


            string comm = "insert into test_tbl (name, grade) VALUES(N'" +
                name + "', " +
                grade + ") ";

            cmd.CommandText = comm;

            if (con.State == ConnectionState.Closed)
                con.Open();

            tr = con.BeginTransaction();
            cmd.Transaction = tr;
            cmd.ExecuteNonQuery();
            tr.Commit();

        }


спасибо

Что я уже пробовал:

я не знаю, что мне делать, помогите

1 Ответов

Рейтинг:
1

Afzaal Ahmad Zeeshan

Цитата:
Сведения об исключении: System.NullReferenceException: ссылка на объект не установлена на экземпляр объекта.
Что-то является нулевым, и именно поэтому ваше приложение не может продолжить работу. Очень трудно сказать, где и что является нулевым в коде, поэтому сделайте себе и нам одолжение, установите отладчик и идите строка за строкой, чтобы увидеть, что является нулевым, и исправить это. Ваш код будет работать; при условии, что нет никаких других проблем.
[WebMethod]
        public void insert_into_test_tbl(string name, int grade)
        {
            con = new SqlConnection(conString); // conString, where is it? 
            SqlCommand cmd = con.CreateCommand(); // Why not new SqlCommand("...");?
            SqlTransaction tr;


            string comm = "insert into test_tbl (name, grade) VALUES(N'" +
                name + "', " +
                grade + ") ";

            cmd.CommandText = comm;

            if (con.State == ConnectionState.Closed) // Supposedly true always
                con.Open();

            tr = con.BeginTransaction();
            cmd.Transaction = tr;
            cmd.ExecuteNonQuery(); // Your command is not attached to a SQL Server
            tr.Commit();

        }
Подумайте о том, чтобы прочитать эту мою статью, чтобы узнать, как подключиться к вашим базам данных SQL Server и выполнять команды на них, Как подключить базу данных SQL к вашей программе C#, учебник для начинающих[^] , это будет статья для начинающих, так что никаких сложных вещей, но в целом основы хорошо объяснены в ней.

А если ваши SQL-запросы подвержены SQL-инъекциям, пожалуйста, Всегда рассматривайте возможность параметризации ваших запросов, так как они могут защитить ваши базы данных от SQL-инъекций и нежелательной потери данных.

SQL-инъекция - Википедия[^]
.net - что означает "ссылка на объект не установлена на экземпляр объекта"? - переполнение стека[^] (В этом потоке есть предыдущий поток, который является дубликатом и основным, прочтите и этот тоже!)