Создание WebService C # ASP.Net - PullRequest
2 голосов
/ 18 ноября 2008

Фрагмент кода следующий:

namespace RecruiterWebService
{
    /// <summary>
    /// Summary description for Service1
    /// </summary>


    [WebService(Namespace = "http://tempuri.org/") ]
    [WebServiceBinding(ConformsTo = WsiProfiles.BasicProfile1_1)]
    [ToolboxItem(false)]
    public class **Service1** : System.Web.Services.WebService
    {


        [WebMethod]
        public XmlDocument Insert(XmlDocument Jobs)
        { }

        [WebMethod]
        public XmlDocument Update(XmlDocument Jobs)
        { }

        [WebMethod]
        public XmlDocument Delete(XmlDocument Jobs)
        { }

        [WebMethod]
        public XmlDocument Insert(string JobPath)
        { }

        [WebMethod]
        public XmlDocument Update(string JobPath)
        { }

        [WebMethod]
        public XmlDocument Delete(string JobPath)
        { }

        [WebMethod]
        public XmlDocument FeedBack(string UserName, string Password)
        { }


    }
}

Мои вопросы: -

  1. Как я могу изменить имя WebService с Service1, скажем, на Джобс ... Я пытался сделать это, но потом, добавляя WebReference, он выдавал исключение.

  2. Здесь, в этом веб-сервисе, я использую перегрузку метода, но aginb при добавлении WebReference выдает исключение, а suggets использует атрибут сообщения, который я не могу понять.

  3. После устранения вышеуказанных двух ошибок в соответствии с вашим предложением. У меня возникла проблема с типом возврата. Я использую XMLDocument в качестве типа возврата для всех WEBMethods, но после добавления его в качестве веб-ссылки на клиента тип возвращаемых методов изменяется на XMLNode, как я могу решить эту проблему

В ожидании ответа, ребята ..

1 Ответ

5 голосов
/ 18 ноября 2008

1: Если вы измените имя класса, вы также должны изменить страницу .asmx (или .svc для WCF), которая имеет (текстовый) маркер, на Service1. Щелкните правой кнопкой мыши на asmx и «Просмотреть разметку» - это должно выглядеть примерно так:

<%@ WebService Language="C#" CodeBehind="Service1.asmx.cs" Class="WebService1.Service1" %>

Измените Class и CodeBehind в соответствии с текущими настройками.

2: WS 1-1 не поддерживает перегрузку. Вам просто нужно добавить атрибут, чтобы дать уникальное имя каждому методу в интерфейсе SOAP. Однако обратите внимание, что это становится именем метода, которое будут видеть ваши прокси.

Например, вы можете изменить одно из сообщений, как показано ниже:

    [WebMethod(MessageName = "InsertXml")]
    public XmlDocument Insert(XmlDocument Jobs)
    { ... }

Теперь обновите клиент; у вас (если вы используете wsdl.exe и т. д.), вероятно, будет метод InsertXml(...).

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...