在.NET2中使用WCF

在.NET2中使用WCF,wcf,.net-2.0,wshttpbinding,Wcf,.net 2.0,Wshttpbinding,我有一个连接和使用WCF方法的方法,它在HTTPS上,需要.NET4中的用户名和密码。 现在我需要做同样的事情,但是在.NET2中,我似乎无法让它工作。我不断得到下面的错误。有人能帮忙吗 错误 {“基础连接已关闭:接收时发生意外错误。”} 内部异常 {“无法从传输连接读取数据:远程主机强制关闭了现有连接。”} .Net 4原始代码: WSHttpBinding myBinding = new WSHttpBinding(); myBinding.S

我有一个连接和使用WCF方法的方法,它在HTTPS上,需要.NET4中的用户名和密码。 现在我需要做同样的事情,但是在.NET2中,我似乎无法让它工作。我不断得到下面的错误。有人能帮忙吗

错误 {“基础连接已关闭:接收时发生意外错误。”} 内部异常 {“无法从传输连接读取数据:远程主机强制关闭了现有连接。”}

.Net 4原始代码:

            WSHttpBinding myBinding = new WSHttpBinding();
            myBinding.Security.Mode = SecurityMode.Transport;
            myBinding.Security.Transport.ClientCredentialType = HttpClientCredentialType.Basic;
            EndpointAddress ea = new EndpointAddress(wcfURL);
            var web = new Gateway.GatewayClient(myBinding, ea);
            // var web = new Gateway.GatewayClient();
            XMLCrypto crypto = new XMLCrypto();


            web.ClientCredentials.UserName.UserName = crypto.DecryptString(username);
            web.ClientCredentials.UserName.Password = crypto.DecryptString(password);
            web.Open();
            web.Inbound("HOLog", message.Trim().Replace("\n", "").Replace(@"\\", ""));
            web.Close();
.NET2代码

 XMLCrypto crypto = new XMLCrypto();
            url = "http://..../gateway/gateway.svc";
            userName = crypto.DecryptString(userName);
            password = crypto.DecryptString(password);

            var web = new Gateway.Gateway();
            var credentials = new NetworkCredential(userName, password);
            CredentialCache credentialCache = new CredentialCache();
            credentialCache.Add(new Uri(url), "Basic", credentials);

            web.Credentials = credentials;

           string returnMessage =  web.Inbound("LSOA", " ");

经过长时间的网络漫游,并测试了与WCF方法对话的不同方式后,我找到了它不起作用的原因

目前WCF设置为使用wsHttpBinding,现在我知道.NET2不支持它。我的工作是在WCF的Web.config中将绑定从wsHttpBinding更改为basicHttpBinding

要做到这一点,并且不影响使用WCF的任何内容,我必须创建一个seprate子域,该子域将使用具有正确绑定的配置引用WCF

“wsHttpBinding与.NET 2.0中使用的ASMX样式的web引用不兼容。”