我遇到了一些麻烦,将我的一些不同的机器连接到运行WCF
(监听器)的专用Windows服务。 那些机器有一个连接到它们的外部调制解调器,这可能会干扰到外部的连接,但机器应该通过WCF
与上述监听器服务建立连接。WCF支持SMB协议?或其他协议不一定在TCP上运行?
因为我需要的所有连接是我的网络内(不同的机器韧),它似乎是Windows共享(复制文件等')确实工作,(假设我没有弄错,它使用的SMB
协议),如果可能的话,我宁愿使用该协议或其他不通过TCP
运行的协议来建立工作连接。 我无法在MSDN上找到任何帮助,但也许有人曾尝试过类似的问题,或遇到过类似的问题,并可以帮助我解决这个问题。
一些代码(非常通用的我猜的):
private const string ServiceEndointURL = "net.tcp://localhost:6789/MyService";
下使用:[ServiceBehavior(InstanceContextMode = InstanceContextMode.Single, ConcurrencyMode = ConcurrencyMode.Multiple, UseSynchronizationContext = true)] public class MyApplication : IService
其中IService
定义:
[ServiceContract(Name = "MyService")]
public interface IService
{
[OperationContract]
bool HandleMessage(Message message);
}
其他方( “客户端”):
string ListenerURL = "net.tcp://xx.xx.xx.xx:6789/MyService";
ChannelFactory<IService> factory = new ChannelFactory<IService>
(new MyNetBindings(), ListenerURL);
IService channel = l_oFactory.CreateChannel();
((IContextChannel)channel).OperationTimeout = new TimeSpan(0, 1, 1);
编辑: 看来,外部l调制解调器正在取代该机器上的默认网关,这可能是无法连接的原因。 手动添加持久路由时,与原始网关(指标较低) - 似乎再次运行。任何方式自动解决它?
在此先感谢!
感谢您的评论。 正如我读过的(在维基百科上),它可能确实运行在不同的传输层上。也许我在混合东西,我的理解对于这个东西并不深刻。但事实是,复制文件到其他机器工作正常,与外部调制解调器连接,而WCF over TCP不。 我不知道为什么,也不知道我是否在正确的解决方向,所以我很乐意收到更多关于如何解决它的想法。 谢谢 – AndroidNewbie
@AndroidNewbie你应该问一个问题,并显示你的WCF配置,你使用的代码和你得到的错误细节。 – i3arnon
编辑我的问题 – AndroidNewbie