0

我有一个 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

如果您需要更多信息,请告诉我。

4

1 回答 1

0

找出了问题所在。我的 WCFHost 字符串以 HTTP:\ 而不是 NET.TCP:\ ​​开头

于 2012-09-10T08:50:58.640 回答