Вызов службы теперь веб-сервис с .Net - PullRequest
3 голосов
/ 30 сентября 2011

Я пытаюсь вызвать веб-службу Service Now из .Net, и я могу заставить ее работать нормально для вставки записи, но я не могу заставить работать GET s.Вот мой рабочий INSERT код:

public void insertTable(string tableName, string schema, string columnInfo, string shortDesrcipt, string longDescript)
{
    using (ServiceNow_u_database_table tableReference = new ServiceNow_u_database_table())
    {
        insertResponse response = new insertResponse();

        System.Net.ICredentials cred = new System.Net.NetworkCredential(Properties.Settings.Default.UserName, Properties.Settings.Default.Password);
        tableReference.Credentials = cred;

        insert tableInsert = this.getTableData(tableName, schema, columnInfo, shortDesrcipt, longDescript);
        try
        {
            response = tableReference.insert(tableInsert);
        }
        catch (Exception error)
        {
            Console.WriteLine(error.Message);
        }
    }
}

Это прекрасно работает.Вот код, который не работает для GET:

using (ServiceNow_u_database_table tableReference = new ServiceNow_u_database_table())
{
    ServiceNowExport.com.servicenow.libertydev.u_database_table.getRecords recordGet = new getRecords();
    System.Net.ICredentials cred = new System.Net.NetworkCredential(Properties.Settings.Default.UserName, Properties.Settings.Default.Password);
    tableReference.Credentials = cred;

    recordGet.name = this._tablePrefix + tableName;
    getRecordsResponseGetRecordsResult[] response = tableReference.getRecords(recordGet);
    if (response != null && response.Count() > 0)
    {
        return true;
    }
}

Когда я запускаю этот код, response всегда равен null.Я следую инструкциям на этой странице.

Я знаю, что он подключается, потому что, если я уничтожу строку учетных данных, я получу несанкционированную ошибку.Есть идеи, что я здесь делаю не так?Спасибо!

Ответы [ 2 ]

8 голосов
/ 13 мая 2012

В вики ServiceNow на веб-службах C #: здесь

Если вы получаете «нулевой» ответ от своего веб-сервиса в коде своего клиента, то у вас может бытьпропустили шаг в этом учебнике для установки параметра elementFormDefault на «False» ... Пожалуйста, не забудьте перекомпилировать ваш код с WSDL после того, как вы изменили этот параметр и сохранили его.

Свойство может бытьнаходится в экземпляре ServiceNow по адресу: Свойства системы> Веб-службы.Установите для него значение false, и вы больше не должны получать значение NULL из ответа getRecords.

Вот снимок экрана свойства: Screenshot of the image

0 голосов
/ 10 февраля 2015

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

https://github.com/jeffpatton1971/mod-ServiceNOW

Не стесняйтесь проверить это

...