我有一个WCF服务发布到我现在正在处理的站点上。这是该服务的开发URL:https://aspireportal.azurewebsites.net/BridgeService.svc
当我尝试使用Wcf测试客户端连接到服务时,我得到以下错误。
错误:无法从中获取元数据 https://aspireportal.azurewebsites.net/BridgeService.svc如果这是一个 您可以访问的Windows(R)Communication Foundation服务, 请在以下位置检查是否已启用元数据发布 指定的地址。有关启用元数据发布的帮助,请 请参阅MSDN文档,网址为 http://go.microsoft.com/fwlink/?LinkId=65455.WS-Metadata交换 错误URI:https://[redacted不再需要] /BridgeService.svc 元数据包含无法解析的引用: 'https://[redacted不再需要] /BridgeService.svc'。一个 发出HTTP请求时发生错误 https://[redacted不再需要] /BridgeService.svc。这可能 由于未配置服务器证书 在HTTPS情况下正确使用HTTP.SYS。这也可能是由于 客户端和服务器之间的安全绑定不匹配。 基础连接已关闭:发生意外错误 发送。无法从传输连接中读取数据: 现有连接被远程主机强行关闭。一个 现有连接被远程主机强行关闭HTTP GET 错误URI:https://[redacted不再需要] /BridgeService.svc 下载时出错 'https://[redacted不再需要] /BridgeService.svc'。的 基础连接已关闭:发生意外错误 发送。无法从传输连接中读取数据: 现有连接被远程主机强行关闭。一个 现有连接被远程主机强行关闭
作为参考,这是我的web.config文件的相关部分
<services>
<service name="OnePortal.BridgeService">
<endpoint address=""
binding="basicHttpBinding"
bindingConfiguration="secureHttpBinding"
contract="OnePortal.IBridgeService"/>
<endpoint address="mex"
binding="mexHttpsBinding"
contract="IMetadataExchange" />
</service>
</services>
<bindings>
<basicHttpBinding>
<binding name="BasicHttpBinding_IAddressVerify">
<security mode="Transport" />
</binding>
<binding name="secureHttpBinding">
<security mode="Transport">
<transport clientCredentialType="None"/>
</security>
</binding>
</basicHttpBinding>
</bindings>
<client>
<endpoint address="[redacted by post]"
binding="basicHttpBinding" bindingConfiguration="BasicHttpBinding_IAddressVerify"
contract="AddressService.IAddressVerify" name="BasicHttpBinding_IAddressVerify" />
</client>
这是我的服务和课程。
// NOTE: You can use the "Rename" command on the "Refactor" menu to change the interface name "IService1" in both code and config file together.
[ServiceContract]
public interface IBridgeService
{
[OperationContract]
BridgeResponse AcceptBridgeRequest(BridgeRequest request);
}
[DataContract]
public class BridgeRequest
{
[DataMember]
public string AcordXML { get; set; }
[DataMember]
public string Vendor { get; set; }
}
[DataContract]
public class BridgeResponse
{
[DataMember]
public string ResponseXML { get; set; }
[DataMember]
public bool HasError { get; set; }
[DataMember]
public string ErrorMessage { get; set; }
}
public class BridgeService : IBridgeService
{
public BridgeResponse AcceptBridgeRequest(BridgeRequest request)
{
return new BridgeResponse
{
HasError = false,
ErrorMessage = string.Empty,
ResponseXML = xml_response.OuterXml
};
}
}
正如您所看到的,我知道所有的类都被适当地修饰。这种感觉就像去年整个TLS1.2一样使所有人感到困惑,但是我似乎回想起错误消息,因为它更加清楚地说明了TLS连接(除非我弄错了。)
我希望新鲜的眼睛能看到我所缺少的东西。 TIA!
答案 0 :(得分:0)
好的,它来晚了,我的大脑还没有完全发挥功能。我只是整理了一个项目,添加了服务参考,效果很好。我认为这可能是TLS1.2,现在我想起我似乎想起了WCF测试客户端可能与新协议不超级兼容。
发布帖子之前,我应该已经完成了此测试。