C# 从客户端使用WCF服务,而不使用WCF服务库项目/程序集引用
下面的问题可能是重复的,但是没有足够的信息来回答我的问题 我已经按照本指南在VisualStudio中使用WCF服务库项目设置了TCP服务 如果您从客户端(Windows窗体项目)添加对WCF服务库项目的引用,这将非常有用。并将using语句添加到项目程序集中并使用此代码C# 从客户端使用WCF服务,而不使用WCF服务库项目/程序集引用,c#,.net,wcf,servicecontract,C#,.net,Wcf,Servicecontract,下面的问题可能是重复的,但是没有足够的信息来回答我的问题 我已经按照本指南在VisualStudio中使用WCF服务库项目设置了TCP服务 如果您从客户端(Windows窗体项目)添加对WCF服务库项目的引用,这将非常有用。并将using语句添加到项目程序集中并使用此代码 TcpService.Service myService = new TcpService.Service(); myService.GetData(123); 但是,我不想在中添加对Tc
TcpService.Service myService = new TcpService.Service();
myService.GetData(123);
但是,我不想在中添加对TcpService程序集的引用
调用方法“GetData”的项目。从一开始
以上是问题的答案
所以我试着用这个代码。我添加了一个对System.ServiceModel的引用(和一个using指令),以解决大多数错误。但现在它说“找不到类型或名称空间名称‘ServiceContract’(是否缺少using指令或程序集引用?)。我是否需要在我的服务中修改App.Config,或者向下面调用此代码的项目中添加任何其他代码(关于“ServiceContract”)
BasicHttpBinding binding = new BasicHttpBinding();
EndpointAddress address = new EndpointAddress("net.tcp://localhost:8523/Service");
ChannelFactory<ServiceContract> factory = new ChannelFactory<ServiceContract>(binding, address);
ServiceContract channel = factory.CreateChannel();
channel.GetData(123);
通过右键单击项目>添加>服务引用,我在VisualStudio中添加了一个服务引用。但我在那里得到了一个错误
第二个对话框中出现错误:
无法识别URI前缀。元数据包含一个
无法解析:'net。tcp://localhost:8523/Service'. 不能
连接到网络。tcp://localhost:8523/Service. 连接尝试失败
持续时间为00:00:01.0011001。TCP错误代码10061:否
由于目标计算机主动拒绝,因此无法建立连接
它是127.0.0.1:8523。无法建立连接,因为目标
如果定义了服务,则机器主动拒绝127.0.0.1:8523
在当前解决方案中,尝试构建解决方案并添加
请再次访问服务引用
导游漏了一步。除了
httpGetEnabled
属性之外,我还将httpsGetEnabled
设置为“false”,它成功了!此后,我在添加服务引用时不再出现错误。然后我将“ServiceContract”更改为“MyClientProject.ServiceReference1.iSeries”,以引用新的服务引用
<?xml version="1.0" encoding="utf-8" ?>
<configuration>
...
<behaviors>
<serviceBehaviors>
<behavior name="">
<serviceMetadata httpGetEnabled="false" httpsGetEnabled="false" />
<serviceDebug includeExceptionDetailInFaults="false" />
</behavior>
</serviceBehaviors>
</behaviors>
</system.serviceModel>
</configuration>
...
<?xml version="1.0" encoding="utf-8" ?>
<configuration>
...
<behaviors>
<serviceBehaviors>
<behavior name="">
<serviceMetadata httpGetEnabled="false" httpsGetEnabled="false" />
<serviceDebug includeExceptionDetailInFaults="false" />
</behavior>
</serviceBehaviors>
</behaviors>
</system.serviceModel>
</configuration>