2012-03-16 2 views
0

Я пытаюсь подключиться к услуге шлюза:Подключение к службе шлюза

о предоставлении услуг говорит об этом, когда я «Add Web Reference» на услугу говорит:

HTML-документ не содержат информацию об обнаружении веб-сервисов.

Служба шлюза показывает это:

Вы создали услугу.

Чтобы проверить эту услугу, вам необходимо создать клиента и использовать его для использования . Вы можете сделать это с помощью инструмента svcutil.exe из командной строки со следующим синтаксисом:

SvcUtil.exe http://xxxxxxxxxxxxxxx.com/API/Gateway.svc?wsdl

Это создаст конфигурационный файл и файл кода, который содержит в клиентский класс. Добавьте два файла в клиентское приложение и используйте сгенерированный клиентский класс для вызова Сервиса. Например:

C#

Класс испытаний { статической силы основных() { GatewayClient клиент = новый GatewayClient();

// Use the 'client' variable to call operations on the service. 

    // Always close the client. 
    client.Close(); 
} } 

Visual Basic

Класс Test Shared Sub Main() Dim клиент Как GatewayClient = Новый GatewayClient() 'Используйте 'клиента' переменную для вызова операций на службе.

' Always close the client. 
    client.Close() 
End Sub End Class 

Таким образом, я пытаюсь подключиться к вместо этого:

http://xxxxxxxxxxxxxxx.com/API/Gateway.svc?wsdl

Это дает мне следующий список:

Методы AddABAccount() CloseBatch() CopyVaultAccount() ProcessAccount() ProcessCustomer() ProcessCustomerAndAccount() Процесс Сделка() ProcessVaultTransaction() UpdateABAccount ( ) UpdateABSchedule() UpdateTransaction()

Таким образом, я могу добавить ...

Но, когда я пытаюсь подключиться к нему в коде, как они говорят:

GatewayClient Client = new GatewayClient("wsBinding"); 
TRANSACTION oT = new TRANSACTION(); 
GATEWAYRESPONSE oGr = new GATEWAYRESPONSE(); 
oT.AMOUNT = 1; 
oT.TEST = "FALSE"; // When testing, use TRUE 
oT.METHOD = "CC"; // We'll use a credit card 
oT.ORDERID = GetOrderID(); // Define a unique id for each transaction 
oT.CODE = "0000"; // An Auth only transaction 
//Process the Transaction 
oGr = Client.ProcessTransaction(oT); 
//Close the Client 
Client.Close(); 
if (oGr.TRANSACTIONRESPONSE.RESPONSE_CODE == "1") 
{ 
//Handle approved transaction 
} 
else if (oGr.TRANSACTIONRESPONSE.RESPONSE_CODE == "2") 
{ 
//Handle declined transaction 
} 
else 
{ 
//Handle transaction error 
} 

Я не в состоянии получить доступ к GatewayClient, он говорит:

не удается разрешить символ «GatewayClient»

Где я могу найти GatewayClient !?

+0

Вы получаете сообщение об ошибке _Cannot resol_ во время компиляции, правильно? –

+0

Я получаю его в визуальной студии, прежде чем пытаюсь скомпилировать. – ErocM

+0

Какое имя вы указали в своей справочной службе при создании? –

ответ

1

При добавлении ссылки в Интернет вы пытаетесь добавить ссылку на старомодный веб-сервис .asmx.

Служба, которую вы на самом деле пытаетесь использовать, является веб-службой WCF - начиная с Visual Studio 2008 при добавлении ссылки на службы веб-службы WCF являются предпочтительным вариантом (вам нужно будет копать некоторые «расширенные» параметры, чтобы добавить .asmx Web Service).

Чтобы использовать прокси-сервер клиента Web-сервиса, созданный для вас, обязательно включите пространство имен в свои using заявления.

пространство имен по умолчанию, который устанавливается при добавлении ссылки на службу является «ServiceReference1», так что добавление

using ServiceReference1; 

должен решить вашу проблему.

+0

А это помогло! Я добавлял его как веб-ссылку вместо метода службы. Как только я это сделал, он добавил присвоенные DLL. Ссылка на веб-службу была там, но она не была добавлена ​​правильно. Спасибо! – ErocM

Смежные вопросы