我正在尝试编写一个简单的c#控制台应用程序来测试SOAP API:https: //www.imailtest.co.uk/webservice/imail_api.asmx?wsdl(或https://www.imailtest.co.uk /webservice/imail_api.asmx查看api方法)
所以,我添加了这个引用,并尝试在其上调用2个api方法(Authentiacate和ProcessPrintReadyPDF)调用并得到此错误:
错误:无法加载合同"ServiceReference1.imail_ apiSoap"的端点配置部分,因为找到了合同中的多个端点配置.请按名称指明首选端点配置部分.
这是我的C#代码:
static void Main(string[] args)
{
// Anticipate Error
try
{
// Generate SOAP Client
ServiceReference1.imail_apiSoapClient soapClient = new ServiceReference1.imail_apiSoapClient();
// Login
Console.WriteLine("Authenticating");
soapClient.Authenticate(iMailUser, iMailPass);
// Proceed If PDF File Exists
if (File.Exists(PDFFile))
{
// Upload PDF File To iMail
Console.WriteLine("Uploading PDF File");
soapClient.ProcessPrintReadyPDF(File.ReadAllBytes(PDFFile), "", true);
// Test Complete
Console.WriteLine("Done");
}
else
{
// Log Error
Console.WriteLine("PDF File [{0}] Does Not Exists", PDFFile);
}
}
catch (Exception ex)
{
// Log Error
Console.WriteLine("Error : "+ ex.Message);
}
// End Test
Console.WriteLine("Press any key to continue ...");
Console.ReadKey();
}
Run Code Online (Sandbox Code Playgroud)
这就是我将服务引用添加到控制台应用程序的方法:http://i.imgur.com/mKmRyrI.png
有任何想法吗?
sud*_* pk 112
在你的App.config中你可以看到这样的东西
<client>
<endpoint address="https://www.imailtest.co.uk/webservice/imail_api.asmx "
binding="basicHttpBinding" bindingConfiguration="xxxxxxxxxx"
contract="xxxxxxxxxx" name="xxxxxxxxxxxxx" />
<endpoint address="https://www.imailtest.co.uk/webservice/imail_api.asmx"
binding="customBinding" bindingConfiguration="xxxxxxxxxxxxx"
contract="xxxxxxxxxxx" name="xxxxxxxxxxxxx" />
</client>
Run Code Online (Sandbox Code Playgroud)
删除第二个端点,现在应该是这样的
<client>
<endpoint address="https://www.imailtest.co.uk/webservice/imail_api.asmx "
binding="basicHttpBinding" bindingConfiguration="xxxxxxxxxxxxx"
contract="xxxxxxxxxxxxxx" name="xxxxxxxxxxxxxxx" />
</client>
Run Code Online (Sandbox Code Playgroud)
现在运行代码,希望你的代码工作正常
Lat*_*san 30
我相信问题是通过定义合同名称来解决的(基于我的截图):
ServiceReference1.imail_apiSoapClient soapClient =
new ServiceReference1.imail_apiSoapClient("imail_apiSoap");
Run Code Online (Sandbox Code Playgroud)
现在,我不再收到错误,api似乎正在运行.
Aya*_*ifa 17
[解决了!只需在webservice的代理类asp下面的屏幕截图中添加End point
归档时间: |
|
查看次数: |
54289 次 |
最近记录: |