2016-02-05 3 views
0
using System.Data; 
using System.Web.Services; 
using System.Web.Services.Protocols; 


namespace MyServices 
{ 
    /// <summary> 
    /// Summary description for Enroll 
    /// </summary> 
    [WebService(Namespace = "http://tempuri.org/")] 
    [WebServiceBinding(ConformsTo = WsiProfiles.BasicProfile1_1)] 
    [System.ComponentModel.ToolboxItem(false)] 
    // To allow this Web Service to be called from script, using ASP.NET AJAX, uncomment the following line. 
    // [System.Web.Script.Services.ScriptService] 
    public class Enroll : WebService 
    { 
     public Credentials Credentials = new Credentials(); 

     [WebMethod(Description = "This method call will insert a public note with the given comments", EnableSession = false)] 
     [SoapHeader("Credentials")] 
     public bool ActivityInsert(int docId, string activityType, string comments, string userNameOn247, string userNameEt) 
     { 
      return EnrollBl.ActivityInsertBl(docId, activityType, ref comments, userNameOn247, userNameEt, this.Credentials); 
     } 

     [WebMethod(Description = "This method call will insert the enrollment document into the database and return the relevant document id.", EnableSession = false)] 
     [SoapHeader("Credentials")] 
     public EnrollResponse EnrollmentInsert(Enrollment enrollmentRequest) 
     { 
      return EnrollBl.EnrollmentInsertBl(enrollmentRequest, this.Credentials); 
     } 

     [WebMethod(Description = "This method call will retrieve the pdf file based on document id", EnableSession = false)] 
     [SoapHeader("Credentials")] 
     public object EnrollmentFile(int documentId) 
     { 
      return EnrollBl.EnrollmentFileBl(documentId, this.Credentials); 
     } 

     [WebMethod(Description = "This method call will update the enrollment document status from Ready to Approved and also insert a public note with the given comments", EnableSession = false)] 
     [SoapHeader("Credentials")] 
     public bool EnrollmentUpdate(int docId, string activityType, string comments, string userNameEt, string userNameOn247) 
     { 
      return EnrollBl.EnrollmentUpdateBl(docId, activityType, ref comments, userNameOn247, userNameEt, this.Credentials); 
     } 

     [WebMethod(Description = "This method call will retrieve the history details for the given document id", EnableSession = false)] 
     [SoapHeader("Credentials")] 
     public DataTable EnrollmentHistory(int documentId) 
     { 
      return EnrollBl.EnrollmentHistoryBl(documentId, this.Credentials); 
     } 

     [WebMethod(Description = "This method call will retrieve all the documents that match the search criteria", EnableSession = false)] 
     [SoapHeader("Credentials")] 
     public DataTable EnrollmentSearch(SearchEnrollment searchParams) 
     { 
      return EnrollBl.EnrollmentSearchBl(searchParams, this.Credentials); 
     } 

     [WebMethod(Description = "This method call retrieves all the active form types as dataset", EnableSession = false)] 
     [SoapHeader("Credentials")] 
     public DataSet FormList() 
     { 
      return EnrollBl.FormListBl(this.Credentials); 
     } 

     [WebMethod(Description = "This method call retrieves all document statuses as dataset", EnableSession = false)] 
     [SoapHeader("Credentials")] 
     public DataSet StatusList() 
     { 
      return EnrollBl.StatusListBl(this.Credentials); 
     } 
    } 
} 

Я создал выше WebService и я добавил атрибут заголовка мыла к услуге я получаю ошибку нижеЗаголовок свойство/поле должно быть типа SoapHeader или производного типа или массив SoapHeader или SoapUnknownHeader

Свойство/поле заголовка Enroll.Credentials должно быть типа SoapHeader или производного типа или массива SoapHeader или SoapUnknownHeader.

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

Сведения об исключении: System.Exception: Свойство/поле заголовка Enroll.Credentials должно быть типа SoapHeader или производного типа или массива SoapHeader или SoapUnknownHeader.

ответ

0

I Наследовать свойства класса заголовка SOAP классу учетных данных, после чего веб-служба работает исправно.