作者热门文章
- android - RelativeLayout 背景可绘制重叠内容
- android - 如何链接 cpufeatures lib 以获取 native android 库?
- java - OnItemClickListener 不起作用,但 OnLongItemClickListener 在自定义 ListView 中起作用
- java - Android 文件转字符串
我想在我的 WPF 应用程序中实现一个简单的自承载 REST API,它监听本地主机上的特定端口。此 API 将由网站使用,以便与正在运行的 WPF 应用程序进行通信。
没过多久,我就遇到了 System.ServiceModel.AddressAccessDeniedException 错误。必须保留 URL,并且只有在进程以提升的权限运行时才能这样做。问题在于,该应用程序已在具有不同 IT 策略的数千家公司中使用,这使得该应用程序几乎不可能在每次启动时都需要管理权限。
这是我的测试代码:
_task = Task.Factory.StartNew(() =>
{
var uri = new Uri("http://localhost:5000/test");
var type = typeof (TestService);
WebServiceHost host = new WebServiceHost(type, uri);
WebHttpBinding binding = new WebHttpBinding();
binding.CrossDomainScriptAccessEnabled = true;
host.AddServiceEndpoint(type, binding, uri);
host.Open();
});
有什么解决办法吗?我可以使用任何第 3 方软件包吗?或者我可以在安装应用程序期间保留 URL,因为安装需要提升的权限吗?或者这是一条死胡同?
最佳答案
只需在安装期间运行:
netsh http add urlacl url=http://+:5000/Test/ user=Everyone
请注意,您可以将 user
从 Everyone
限制为登录用户,例如user=MyDomain\John
关于c# - 没有管理权限的本地主机上的自托管 REST API,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35361029/
我是一名优秀的程序员,十分优秀!