我正在尝试连接到网关服务:
当我将“添加Web引用”添加到它所说的服务时,服务说这个:
HTML文档不包含Web服务发现信息。
网关服务显示:
您已创建了一项服务。
要测试此服务,您需要创建一个客户端并将其用于 打电话给服务。您可以使用svcutil.exe工具执行此操作 命令行,语法如下:
svcutil.exe http://xxxxxxxxxxxxxxx.com/API/Gateway.svc?wsdl
这将生成一个配置文件和一个包含的代码文件 客户端类。将这两个文件添加到客户端应用程序并使用 生成的客户端类来调用服务。例如:
C#
class Test { static void Main() { GatewayClient客户端=新的GatewayClient();
// Use the 'client' variable to call operations on the service. // Always close the client. client.Close(); } }
Visual Basic
班级考试 共享子主() Dim client As GatewayClient = New GatewayClient() '使用'client'变量来调用服务上的操作。
' Always close the client. client.Close() End Sub End Class
所以,我尝试连接到这个:
http://xxxxxxxxxxxxxxx.com/API/Gateway.svc?wsdl
这给了我以下列表:
方法AddABAccount()CloseBatch()CopyVaultAccount() ProcessAccount()ProcessCustomer()ProcessCustomerAndAccount() ProcessTransaction()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 :(得分:1)
添加 Web引用时,您尝试添加对旧式.asmx Web服务的引用。
您实际尝试引用的服务是WCF Web服务 - 在添加服务引用时从Visual Studio 2008开始WCF Web服务是首选选项(您必须深入了解某些"高级&# 34;添加.asmx Web服务的选项。
要使用为您创建的Web服务客户端代理,请确保在using
语句中包含命名空间。
添加服务引用时设置的默认命名空间是" ServiceReference1",因此添加
using ServiceReference1;
应该解决你的问题。