Сервис отправки смс - C#

Узнай цену своей работы

Формулировка задачи:

Всем привет! Задача такая - веб-сервис для отправки смс. Отправка идет через шлюз оператора. Использую библиотеку - ALT.SMS.SMPP. Не могу понять, в чем проблема, может что-то неправильно передаю или еще что-то. Помогите пожалуйста. Заранее спасибо.
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.Services;
using EasySMPP;
using System.Collections;
using System.Text;
using ALT.SMS;
 
namespace SmsSend
{
 
    [WebService(Namespace = "http://microsoft.com/webservices/")]
    [WebServiceBinding(ConformsTo = WsiProfiles.BasicProfile1_1)]
    [System.ComponentModel.ToolboxItem(false)]
 
    public class Service1 : System.Web.Services.WebService
    {
        SmppClient client;

        #region SendSms
 
        [WebMethod(Description = "Сервис для отправки sms")]
 
        public void SendSms(String phone, String message)
        {
 
            // Параметры для соединения с интернет шлюзом провайдера
            string host = "******";
            int port = *****;
            byte source_ton = *;
            byte source_npi = *;
            string source_address = "*****";
            byte target_ton = *;
            byte target_npi = *;
            string system_id = "*****";
            string password = "******";
            
            client = new SmppClient(); // Создание SMPP клиента
            //client.evError += new SmppClient.ErrorEventHandler(client_evError);
            
            client.AddrNpi = *;
            client.AddrTon = *;
            client.Timeout = 120000;
            client.NeedEnquireLink = false;
 
            if(client.Connect(host,port)) //Создание соединения с шлюзом провайдера
            {
                try
                {
                    var pduBindResp = client.Bind(system_id, password);
                    if(pduBindResp.Status==CommandStatus.ESME_ROK || pduBindResp.Status==CommandStatus.ESME_RALYBND)
                    {
                        var req = client.PrepareSubmit(SubmitMode.ShortMessage, source_ton, source_npi, source_address, target_ton, target_npi, phone, DataCodings.UCS2, message);
                        var submitResp = client.Submit(req);
                        var unbindResp = client.UnBind();
 
                        //if(0 >= submitResp.Length)
                        //{
                        //    throw new ApplicationException("Ответ от сервера НЕ ПОЛУЧЕН");
                        //}
 
                        if(submitResp[0].Status !=CommandStatus.ESME_ROK)
                        {
                            
                        }
                    }
 
                }
 
                finally
                {
                    client.Disconnect();
                }
 
            }
 
            else
            {
                String.Format("Невозможно соединиться с сервером смс ({0}:{1})",host,port);
            }
                       
        }
        #endregion
       
    }
}

Решение задачи: «Сервис отправки смс»

textual
Листинг программы
System.NullReferenceException: Object reference not set to an instance of an object.
   at ALT.SMS.SmppClient.UnBind()
   at Service.SendSms(String phone, String message) in c:\*****\*****\Downloads\SmsWebService\App_Code\Service.cs:line 57

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

10   голосов , оценка 4.3 из 5