Tag: channelfactory

WCF错误:在此工厂启用手动寻址,因此所有发送的消息都必须预先寻址

我有一个托pipeWCF服务,我创build了一个自定义工厂,以便这可以与多个主机标头一起使用: /// <summary> /// Required for hosting where multiple host headers are present /// </summary> public class MultipleHostServiceFactory : ServiceHostFactory { protected override ServiceHost CreateServiceHost(Type serviceType, Uri[] baseAddresses) { List<Uri> addresses = new List<Uri>(); addresses.Add(baseAddresses[0]); return base.CreateServiceHost(serviceType, addresses.ToArray()); } } 我很确定我的configuration文件现在是正确的,在客户端和服务器( 可以在这里看到 )。 我得到的错误似乎与工厂有关: 手动寻址在此工厂启用,所有发送的邮件必须预先寻址。 public string GetData(int value) { return base.Channel.GetData(value); } 错误发生在线return base.Channel.GetData(value); […]

创buildWCF ChannelFactory <T>

我试图将现有的.NET Remoting应用程序转换为WCF。 服务器和客户端共享通用接口,所有对象都是服务器激活的对象。 在WCF世界中,这将与创build每个通话服务和使用ChannelFactory<T>创build代理类似。 我正在为如何为ASP.NET客户端正确创buildChannelFactory<T>而烦恼。 出于性能原因,我想cachingChannelFactory<T>对象,并且每次调用服务时都创build通道。 在.NET的远程处理date,曾经有RemotingConfiguration.GetRegisteredWellknownClientTypes()方法来获取我可以caching的客户端对象的集合。 看起来,在WCF世界里没有这样的事情,虽然我能从configuration文件中获取端点集合。 现在这是我认为会起作用的。 我可以创build这样的东西: public static ProxyHelper { static Dictionary<Type, object> lookup = new Dictionary<string, object>(); static public T GetChannel<T>() { Type type = typeof(T); ChannelFactory<T> factory; if (!lookup.ContainsKey(type)) { factory = new ChannelFactory<T>(); lookup.Add(type, factory); } else { factory = (ChannelFactory<T>)lookup[type]; } T proxy = factory.CreateChannel(); ((IClientChannel)proxy).Open(); return […]