我是 WCF 的新手。我正在尝试编辑现有代码以使用 net.tcp 绑定而不是 http 绑定。我已经在使用配置文件的测试项目中轻松完成了此操作,但由于各种原因,在实际项目中它是通过编程完成的。
我进行了必要的更改,服务主机似乎正确启动:
Uri baseAdress= new Uri("net.tcp://localhost:7005/MyService/");
host = new ServiceHost(typeof(MyServiceImpl), baseAdress);
host.AddServiceEndpoint(
typeof(MyService),
new NetTcpBinding(),
"");
ServiceMetadataBehavior metadataBehavior;
metadataBehavior = host.Description.Behaviors.Find<ServiceMetadataBehavior>();
if (metadataBehavior == null)
{
metadataBehavior = new ServiceMetadataBehavior();
host.Description.Behaviors.Add(metadataBehavior);
}
BindingElement bindingElement = new TcpTransportBindingElement();
CustomBinding binding = new CustomBinding(bindingElement);
host.AddServiceEndpoint(typeof(IMetadataExchange), binding, "mex");
host.Open();
Run Code Online (Sandbox Code Playgroud)
到目前为止,一切都很好。我编辑了客户端的连接字符串:
string serverUri = string.Format("net.tcp://{0}:{1}/MyService", serverName, port);
MyService server = new MyServiceClient("MYS", serverUri);
Run Code Online (Sandbox Code Playgroud)
但是当我尝试从我的服务调用函数时,我收到此错误:
提供的 URI 方案“net.tcp”无效;预期“http”
不太确定我错过了什么......有什么提示吗?
| 归档时间: |
|
| 查看次数: |
5843 次 |
| 最近记录: |