我有一些使用PNRP来发现网络上的对等体的代码。自Windows 10更新1803以来,一切运行正常。
public void Init()
{
try
{
_ServiceUrl = Dns.GetHostAddresses(Dns.GetHostName()).Where(address => address.AddressFamily == AddressFamily.InterNetwork).Select(address => _Address = address).Select(address => $"net.tcp://{address}:{Port}/SiemensVR").FirstOrDefault();
if (string.IsNullOrEmpty(_ServiceUrl)) return;
_LocalProxy = new PeerProxy(_EventAggregator, this);
_Host = new ServiceHost(_LocalProxy, new Uri(_ServiceUrl));
var binding = new NetTcpBinding();
binding.Security.Mode = SecurityMode.None;
_Host.AddServiceEndpoint(typeof(IPeerContract), binding, new Uri(_ServiceUrl));
_Host.Open();
_PeerName = new PeerName(PEER_NAME_ID, PeerNameType.Unsecured);
_PeerNameRegistration = new PeerNameRegistration(_PeerName, Port) { Cloud = Cloud.AllLinkLocal };
_PeerNameRegistration.Comment = _UserId.ToString();
_PeerNameRegistration.Start();
ResolvePeers();
}
finally { }
}
private async void ResolvePeers()
{
var resolver = new PeerNameResolver();
resolver.ResolveProgressChanged += OnResolveProgressChanged;
resolver.ResolveCompleted += (s, e) =>
{
Console.WriteLine("Completed");
};
resolver.ResolveAsync(_PeerName, this);
await Task.Delay(1000);
resolver.ResolveAsyncCancel(this);
}微软有没有用什么东西代替PNRP?
我已经测试过激活pnrp服务,重新安装teredo隧道等等。
发布于 2020-08-25 22:35:33
Microsoft已弃用并正在删除PNRP。你倒霉了,因为它的服务和客户端API已经被完全移除了。
请参阅https://docs.microsoft.com/en-us/windows/deployment/planning/windows-10-deprecated-features
发布于 2018-07-03 07:38:31
在这里有同样的问题...如果您找到任何解决方案,请告诉我。
以前,我们的应用程序工作正常,但在1803上它不再工作。我可以看到云开始同步,然后每个对等点都以单独状态结束。
发布于 2018-12-20 22:59:30
同样的问题,我发现了一个Microsoft注释,它将以下服务设置为自动延迟启动:
Computer Browser (Browser) <- Set to Automatic, not delayed start
Function Discovery Provider Host (FDPHost)
Function Discovery Resource Publication (FDResPub)
Network Connections (NetMan)
UPnP Device Host (UPnPHost)
Peer Name Resolution Protocol (PNRPSvc)
Peer Networking Grouping (P2PSvc)
Peer Networking Identity Manager (P2PIMSvc)但这并没有解决问题。
在解决这个问题上有什么进展吗?
https://stackoverflow.com/questions/51019094
复制相似问题