通过C#连接到Cerberus FTP API

时间:2011-07-26 15:05:09

标签: c# web-services

我目前正在尝试将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服务?

1 个答案:

答案 0 :(得分:0)

创建的app.config是正确的。 我需要在代码中设置URL,如下所示:

CerberusFTPService client = new CerberusFTPService();
client.Url = "http://ipaddressoftheserver:10000/wsdl/Cerberus.wsdl";

在代码中指定WSDL的URL后,我可以毫无问题地连接。