我应该在DuplexClientBase构造函数的“endpointConfigurationName”参数中指定什么?
无论我放在哪里,客户端抛出的行为都是“无法在ServiceModel客户端配置部分找到引用合同'ServiceReference1.IClientFulfillmentPipeService'的默认端点元素。这可能是因为找不到配置文件应用程序,或者因为在客户端元素中找不到与此合同匹配的端点元素。“
我使用“添加服务引用”向导生成代理。这是客户端的源代码:
class Program
{
static void Main()
{
try
{
var client = new ClientFulfillmentPipeServiceClient(new InstanceContext(new Wrapper()), "*", "net.tcp://localhost:9000/svc");
client.Initialize(1234, "Test");
client.Close();
}
catch (Exception ex)
{
Debug.WriteLine(ex.Message);
}
}
}
我将示例WCF服务器编写为控制台应用程序。以下是实施:
static void Main()
{
UiWcfSession.OnInitialize += ClientInitialize;
var baseAddresses = new Uri("net.tcp://localhost:9000/");
var host = new ServiceHost(typeof(UiWcfSession), baseAddresses);
var reliableSession = new ReliableSessionBindingElement { Ordered = true, InactivityTimeout = TimeSpan.MaxValue };
var binding =
new CustomBinding(reliableSession, new TcpTransportBindingElement()) { ReceiveTimeout = TimeSpan.MaxValue };
host.AddServiceEndpoint(typeof(IClientFulfillmentPipeService), binding, "svc");
var metadataBehavior = new ServiceMetadataBehavior();
host.Description.Behaviors.Add(metadataBehavior);
var mexBinding = MetadataExchangeBindings.CreateMexTcpBinding();
host.AddServiceEndpoint(typeof(IMetadataExchange), mexBinding, "mex");
host.Open();
Thread.CurrentThread.Join();
}
private static void ClientInitialize(int uiprocessid, string key)
{
Debug.WriteLine("ClientInitialize");
}
我没有使用xml配置。
你能帮我吗?
答案 0 :(得分:2)
看起来我不能使用这个构造函数,除非我添加.xml配置文件。
我最后使用另一个以CustomBinding
和EndpointAddress
作为参数。