我目前正在尝试将Cerberus FTP的功能集成到我们的应用程序中。 因为我无法在我的应用程序中使用它,所以我下载了the available sample,您可以在他们的网站上下载它。 不幸的是,我无法让它工作。
添加引用后,将创建app.config:
<?xml version="1.0" encoding="utf-8" ?>
<configuration>
<configSections>
</configSections>
<system.serviceModel>
<bindings>
<customBinding>
<binding name="CerberusFTPServiceSoapBinding">
<textMessageEncoding maxReadPoolSize="64" maxWritePoolSize="16"
messageVersion="Soap12" writeEncoding="utf-8">
<readerQuotas maxDepth="32" maxStringContentLength="8192" maxArrayLength="16384"
maxBytesPerRead="4096" maxNameTableCharCount="16384" />
</textMessageEncoding>
<httpTransport manualAddressing="false" maxBufferPoolSize="524288"
maxReceivedMessageSize="65536" allowCookies="false" authenticationScheme="Basic"
bypassProxyOnLocal="true" hostNameComparisonMode="StrongWildcard"
keepAliveEnabled="true" maxBufferSize="65536" proxyAuthenticationScheme="Anonymous"
realm="" transferMode="Buffered" unsafeConnectionNtlmAuthentication="false"
useDefaultWebProxy="true">
<extendedProtectionPolicy policyEnforcement="Never" />
</httpTransport>
</binding>
</customBinding>
</bindings>
<client>
<endpoint address="http://localhost:10000/service/cerberusftpservice"
binding="customBinding" bindingConfiguration="CerberusFTPServiceSoapBinding"
contract="ServiceCerberusFtpSoap.CerberusFTPServicePort" name="CerberusFTPServicePort" />
</client>
</system.serviceModel>
我已将端点地址更改为“https:// ipaddressofourserver:10000 / service / cerberusftpservice”,但后来出现以下错误:“未处理的异常:System.ArgumentException:提供的URI方案'https'无效;预计'http'。“ (是的,它需要是HTTPS)。
如果我搜索这个主题,你会得到很多文章,但大多数都提到将以下内容添加到app.config:<security mode="Transport">
但我无法选择这种模式,我甚至无法选择“模式”......唯一的选择是authenticationMode。
一些可能性是CertificateOverTransport,KerberosOverTransport,UsernameOverTransport。
如果我选择UsernameOverTransport,我会收到以下错误: “未处理的异常:System.InvalidOperationException:'CustomBinding'。'http://tempuri.org/'绑定'CerberusFTPServicePort'。'http://cerberusllc.com/service/cerberusftpservice'合同配置了身份验证模式这需要传输级别的完整性和机密性。但是传输不能提供完整性和机密性。“
是否有人使用过Cerberus FTP API?如何使用HTTPS连接到Web服务?
答案 0 :(得分:0)
创建的app.config是正确的。 我需要在代码中设置URL,如下所示:
CerberusFTPService client = new CerberusFTPService();
client.Url = "http://ipaddressoftheserver:10000/wsdl/Cerberus.wsdl";
在代码中指定WSDL的URL后,我可以毫无问题地连接。