我正在以編程方式創建一個命名管道WCF服務和客戶端。爲什麼「在配置元素集合中找不到與鍵匹配的元素」?
服務代碼執行:
serviceHost = new ServiceHost(typeof(CFCAccessPointService), new Uri(Names.Address));
serviceHost.AddServiceEndpoint(typeof (ICfcAccessPoint), new NetNamedPipeBinding(Names.Binding), Names.Contract);
serviceHost.Open();
客戶端代碼:
var ctx = new InstanceContext(new StatusHandler());
s_proxy = new DuplexChannelFactory<ICfcAccessPoint>(ctx, new NetNamedPipeBinding(Names.Binding), new EndpointAddress(Names.Address));
與
public static class Names
{
public const string Address = "net.pipe://localhost/CFC/Plugins/GuestAccessService";
public const string Binding = "netNamedPipeBinding_ICfcAccessPoint";
public const string Contract = "GuestAccessClientServerInterface.ICfcAccessPoint";
}
,以確保客戶端和服務保持不變。
但是,如果我刪除Names.Binding,以便沒有指定綁定配置,則會出現在端點上找不到偵聽器的錯誤。如果我包含它,我會得到「在配置元素集合中找不到與密鑰匹配的元素」...
我沒有使用.config文件。
還缺什麼?
對不起,但沒有任何建議工作。當我修改代碼來設置安全模式時,我得到了無聽者錯誤。添加配置文件完全沒有區別。 – shipr