Вопрос

Интеграция с bpm'online при помощи конфигурационного сервиса

Здравствуйте. 

На сайте академии сказано что можно подцепиться к bpm при помощи аж 5 способов.

Я пробую способ интеграции при помощи конфигурационного сервиса. Веб служба DataService и протокол OData расписаны достаточно подробно, а вот конфигурационный сервис описан несколькими строками.

Я проделал следующую работу. Но в итоге ничего не заработало. Если кто-то разбирается в веб сервисах подскажите как решить проблему. Весь код и пример в ссылке.

Это исходный код Веб сервиса на c#

namespace Terrasoft.Configuration
{
    using System.ServiceModel;
    using System.ServiceModel.Web;
    using System.ServiceModel.Activation;
 
    [ServiceContract]
    [AspNetCompatibilityRequirements
    (RequirementsMode = AspNetCompatibilityRequirementsMode.Required)]
    //*********    Класс  "KotService"  ************
    public class KotService 
    {
        [OperationContract]
        [WebInvoke(Method = "POST", RequestFormat = WebMessageFormat.Json,
        BodyStyle = WebMessageBodyStyle.Wrapped,
        ResponseFormat = WebMessageFormat.Json)]
        //*********    Функция  "Func1"  ************
        public string Func1(string inputParam) 
        {
            var result = inputParam + " + something new as string";
            return result;
        }
 
    }
}

Здесь я пытаюсь вызвать метод Func1 во внешнем приложении (WinFormsApp)

using System;
using System.Windows.Forms;
using TESTwebservice.KotServiceRef;
 
namespace TESTwebservice
{
    public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
        }
 
        private void button1_Click(object sender, EventArgs e)
        {
 
            KotServiceClient myservClient = new KotServiceClient();
            string input = textBox1.Text;
            string output = string.Empty;
            myservClient.Func1(input);
            textBox2.Text = output;
            myservClient.Close();
 
        }
    }
}

Скриншот ошибки

Изображение удалено.

Очень надеюсь на вашу помощь.

 

 

Нравится

2 комментария

Добрый день, Константин!

Тут обсуждалась похожая проблема: https://community.terrasoft.ru/questions/polucit-wsdl-konfiguracionnogo…

Мне кажется это должно помочь: Есть утилита wsdl.exe

C:\Program Files (x86)\Microsoft SDKs\Windows\v10.0A\bin\NETFX 4.6 Tools\wsdl.exe

С ее помощью можно сгенерировать прокси- классы из сохраненного локально WSDL- файла. Далее скомпилировать эти классы в сборку и включить ссылку на сборку в проект консольного клиента, ну а дальше вызывать методы Web- сервиса из клиента, используя прокси- классы.

Разобрался я с вопросом. wsdl тут не помог. я пробовал.

Если кому надо ловите код как вызвать веб сервис:

private void button1_Click(object sender, EventArgs e)
{
    string input = textBox1.Text;
    string output = string.Empty;
    bool isAuth = TryLogin("Supervisor", "Supervisor");
 
    var myRequest = HttpWebRequest.Create("http://localhost:8080/0/ServiceModel/KotService.svc/Func1") as HttpWebRequest;
 
    myRequest.Method = "GET";
    myRequest.ContentType = "application/json";
 
    ResponseStatus status = null;
    using (var response = (HttpWebResponse)myRequest.GetResponse())
    {
        using (var reader = new StreamReader(response.GetResponseStream()))
        {
            input = reader.ReadToEnd();
            status = new System.Web.Script.Serialization.JavaScriptSerializer().Deserialize<ResponseStatus>(input);
        }
 
    }
 
    textBox2.Text = status.Message;
 
}

 

Показать все комментарии