- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我想要做的是创建一个 SocketStreamListener 并连接到它(在本地主机上)。然后连接到它并向它发送消息。很简单的东西就搞定了here in an official demo但我想理解它并在我自己的应用程序中使用这个逻辑。
问题
我创建了一个新的 Windows Metro C# 应用程序项目,并使用以下代码在我的主页上创建一个监听器:
private void Button_Click(object sender, RoutedEventArgs e)
{
StreamSocketListener listener = new StreamSocketListener();
greetingOutput.Text = "Hello, " + nameInput.Text + "!";
}
但是我得到这个错误:
An exception of type 'System.UnauthorizedAccessException' occurred in HelloWorld.exe but was not handled in user code
WinRT information: At least one of either InternetClientServer or PrivateNetworkClientServer capabilities is required to listen for or receive traffic
Additional information: Access is denied.
If there is a handler for this exception, the program may be safely continued.
虽然在官方演示中可以使用相同的代码。
我错过了什么?我做错了什么?
最佳答案
您需要根据您的需要将您的应用程序配置为需要一项或两项必要功能:
互联网客户端服务器
Your Internet connection, including incoming unsolicited connections from the Internet – the app can send information to or from your computer through a firewall. You do not need to declare internetClient if this capability is declared.
私有(private)网络客户端服务器
A home or work network – the app can send information to or from your computer and other computers on the same network.
(来自 http://msdn.microsoft.com/en-us/library/windows/apps/br211423.aspx 的文档)
另请参阅本文以获取有关功能如何工作的更多信息:http://msdn.microsoft.com/en-us/library/windows/apps/hh464936.aspx
Internet and public networks
The internetClient capability provides outbound access to the Internet and public networks through the firewall. Almost all web apps use this capability. The internetClientServer capability provides inbound and outbound access to the Internet and public networks through the firewall.
Home and work networks
The privateNetworkClientServer capability provides inbound and outbound access to home and work networks through the firewall. This capability is typically used for games that communicate across the local area network (LAN), and for apps that share data across a variety of local devices. If your app specifies musicLibrary, picturesLibrary, or videosLibrary, you don't need to use this capability to access the corresponding library in a Home Group.
您需要声明您的应用需要哪些功能(因此可以访问)在您的包裹 list 中。这是有关如何执行此操作的分步指南:http://msdn.microsoft.com/en-us/library/windows/apps/br211477.aspx
您可以使用 Visual Studio 中的 list 设计器来编辑这些功能。只需在您的解决方案中找到并打开名为 package.appxmanifest
的文件, list 设计器就会打开。
选择功能选项卡和您的应用所需的网络相关功能,您应该一切顺利。
有关 App Manifest Designer 的文档链接:http://msdn.microsoft.com/en-us/library/windows/apps/br230259(v=vs.110).aspx
关于最后一段
If there is a handler for this exception, the program may be safely continued.
这只是说您可以在 try-catch block 中使用 StreamSocketListener
包装您的代码。如果您想在应用程序中优雅地处理缺失的功能,这是一件好事:
private void Button_Click(object sender, RoutedEventArgs e)
{
try
{
StreamSocketListener listener = new StreamSocketListener();
greetingOutput.Text = "Hello, " + nameInput.Text + "!";
}
catch(UnauthorizedAccessException exc)
{
// Act on the missing capability. Log it and/or warn the user.
}
}
关于c# - StreamSocketListener 访问被拒绝,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11725170/
我只想允许一个国家/地区访问,但排除该国家/地区内的代理。 这就是我所拥有的(为了方便起见,缩短了版本) order deny,allow deny from all allow from 139.
这个问题在这里已经有了答案: What is an unhandled promise rejection? (9 个回答) 关闭 4 年前。 我目前正在尝试实现我自己的 Promise,以便在 A
我在使用 Gitolite 推送 git 时遇到问题。 当我尝试这个时: git push origin :refs/tags/deployment 我收到这个错误: remote: D NAME/i
我已经为我的 laravel 5.0-dev 项目配置了 mysql,如下所示: 'mysql' => [ 'driver' => 'mysql', 'host' =>
我对 Web 和 SOF 进行了一些研究,但发现对于该错误没有任何真正的帮助。 我使用 Windows 10 Ubuntu Bash 安装了 Node 和 Puppeteer,但未能使其工作,但我设法
在我的应用审核期间,我收到了以下信息: “17.2:要求用户共享个人信息(例如电子邮件地址和生日)才能正常运行的应用将被拒绝 具体来说,您的应用仅使用Facebook登录名进行身份验证,但不包括该网站
我正在开发 VeriFone VX 终端的接口(interface)。虽然,这确实是一个普遍的 EMV 问题。我们的处理器的下限为零,因此它将始终在线发送。但是,如果它发生变化,您如何知道(哪些标签)
我编写了一些宏代码,根据表单提交向经理发送电子邮件(用于费用/审批流程),这是我使用谷歌表单/电子表格的第一个项目,所以也许我可能会错过一些简单的东西,但我为此浏览了 2 个教程,我的代码与重要的部分
clang 3.4 接受以下代码;而 vc++ NOV 2013 CTP 拒绝它并出现错误: error C2668: 'AreEqual' : ambiguous call to overloade
使用 nginx,您可以允许和拒绝范围和 ips (https://www.nginx.com/resources/admin-guide/restricting-access/)。使用realip模
官方编辑: 非常感谢您的帮助,但我仍然遇到问题。 我的 ffserver.conf 文件是这样的: # Port on which the server is listening. You must
我有一个问题:我是 Ubuntu 系统的根。我想授予用户(比如用户名是 X)执行任何命令的权限,但同时我有一个文件夹,除了我的用户(当然不是 X,因为它是 Admin ) 或根。有什么建议么?谢谢!
我使用 Apache2.2 作为 tomcat 服务器的前端。我想限制对某个位置的访问,但允许对子位置的所有访问,但遇到了一些麻烦。 我目前拥有的是: AllowOverride None
就像 this person ,我一直在为浏览器缓存 SSL session 而苦苦挣扎。简而言之,如果选择了客户端证书,则无法以编程方式清除状态,除非在 IE 中使用 document.execCo
我的网站是在由 Apache 服务器提供服务的 Angular 上设置的。我通过 View 将内容动态加载到主页上。 现在以下是我的问题: 我建立这个网站的主要目的是通过 google adsense
我最近遇到了我的应用程序的问题,当它突然被 Google Play 拒绝时因为他们发现我使用的是背景位置 .但实际上我并没有使用这个功能。我只有 ACCESS_COARSE_LOCATION和 ACC
function sendPushNotification(subscription, urlEncodedData){ try { webpush.sendNotification(su
我包裹了一个 request-promise-native调用返回 promise 的函数。 import request from 'request-promise-native'; functio
我正在开发我的 meteor 项目,并开始设置我的第一个更复杂的允许/拒绝规则。我发现很难看出哪些允许触发,哪些不允许触发,以及这些函数中的某些变量包含什么。例如: List.allow({ u
我正在 AngularJS 中创建一个 Factory,它是这样的: if (href) { return $http({ method: method, url: item.href });
我是一名优秀的程序员,十分优秀!