我有一个 WCF 服务设置为 WSduallHTTP,使用它一切正常。我遇到的问题是我需要能够让服务作为非管理员程序运行。我知道我可以设置 WCF 服务,以便管理员只需授予该服务能够在某个端口范围上运行的权限,但如果我可以完全摆脱对管理员的需求,那就更好了。
因此,我读到 NETTCP 绑定既支持双工,也不需要管理员权限来托管服务。我的第一个问题是这是正确的吗?
此外,当我将 WSDualHTTP 绑定更改为 NETTCP 绑定时,我收到以下错误。
Could not find a base address that matches scheme net.tcp for the endpoint with binding NetTcpBinding. Registered base address schemes are [http].
这是失败的代码:
string WCFHost = string.Format(WCF_URL, MainConfiguration.WCFCommunicationsURL,
MainConfiguration.WCFCommunicationsPort);
this.serviceHost = new ServiceHost(typeof(GX3WCFServerService), new Uri(WCFHost));
NetTcpBinding binding = new NetTcpBinding();
binding.ReaderQuotas.MaxStringContentLength = int.MaxValue;
this.serviceHost.AddServiceEndpoint(typeof(IGX3WCFServerService), binding, "");
//the line above it the one throwing the exception
如果您需要更多信息,请告诉我。