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
さらに情報が必要な場合はお知らせください。