asp.net公开服务地址时,由于当前用户权限问题,会导致服务地址未添加到urlacl池中报错。

关于添加urlacl的细节,请参考我之前的文章:asp.net self host and urlacl(解决UnHandledException Message:拒绝访问的问题)

获取urlacl池中存在地址否:


string _ServerLocalUrl = "http://*:22333/";
bool isExists = false; #region 判断存在否 try
{
var psi = new ProcessStartInfo
{
CreateNoWindow = true,
FileName = "cmd.exe",
UseShellExecute = false,
RedirectStandardInput = true,
RedirectStandardOutput = true,
RedirectStandardError = true,
Verb = "RunAs"
}; var process = Process.Start(psi);
process.StandardInput.WriteLine("netsh http show urlacl");
process.StandardInput.WriteLine("exit");
process.StandardInput.Flush(); StreamReader reader = process.StandardOutput;
string all = reader.ReadToEnd();
isExists = all.IndexOf(_ServerLocalUrl) >= 0;
process.WaitForExit(); //等待程序执行完退出进程
process.Close();
}
catch (Exception ex)
{
_Logger.Error(ex, "获取asp.net自宿服务urlacl发生异常。");
} #endregion 判断存在否

接下来如果不存在,则以管理员方式注册不存在的urlacl:


#region 如果不存在 if (!isExists)
{
var startInfo = new ProcessStartInfo
{
WindowStyle = ProcessWindowStyle.Hidden,
FileName = "cmd.exe",
Arguments = $"/C netsh http add urlacl url={_ServerLocalUrl} user=Everyone listen=yes",
Verb = "runas"
}; try
{
_Logger.Trace($"即将以管理员方式注册不存在的urlacl。arguments = {startInfo.Arguments}");
var process = Process.Start(startInfo);
process.WaitForExit();
process.Close();
_Logger.Trace($"完成以管理员方式注册不存在的urlacl。");
}
catch (Exception ex)
{
_Logger.Error(ex, "以管理员方式注册不存在的urlacl发生了异常。");
}
} #endregion 如果不存在

记录一下WPF中自寄宿asp.net服务添加urlacl的问题的更多相关文章

  1. 在WPF中使用FontAwesome之类的字体图标

    我之前在博客中介绍过几个矢量图库网站,在WPF程序中,一般接触到的矢量图标资源有XAML.SVG.字体这三种格式.XAML是标准格式就不说了,SVG并不是直接支持的,不过微软提供了Expression ...

  2. WPF中的常用布局 栈的实现 一个关于素数的神奇性质 C# defualt关键字默认值用法 接口通俗理解 C# Json序列化和反序列化 ASP.NET CORE系列【五】webapi整理以及RESTful风格化

    WPF中的常用布局   一 写在开头1.1 写在开头微软是一家伟大的公司.评价一门技术的好坏得看具体的需求,没有哪门技术是面面俱到地好,应该抛弃对微软和微软的技术的偏见. 1.2 本文内容本文主要内容 ...

  3. wpf中xaml的类型转换器与标记扩展

    原文:wpf中xaml的类型转换器与标记扩展 这篇来讲wpf控件属性的类型转换器 类型转换器 类型转换器在asp.net控件中已经有使用过了,由于wpf的界面是可以由xaml组成的,所以标签的便利也需 ...

  4. 后续来啦:Winform/WPF中快速搭建日志面板

    后续来啦:Winform/WPF中快速搭建日志面板 继昨天发文ASP.NET Core 可视化日志组件使用(阅读文章,查看视频)后,视频下有朋友留言 "Winform客户端的程序能用它不?& ...

  5. WPF入门教程系列十五——WPF中的数据绑定(一)

    使用Windows Presentation Foundation (WPF) 可以很方便的设计出强大的用户界面,同时 WPF提供了数据绑定功能.WPF的数据绑定跟Winform与ASP.NET中的数 ...

  6. WPF中的依赖项属性

    Form cnblogs 桂素伟 随着WPF的推广,不得不重新拾起WPF来,因为这块的产品越来越多. 只能跟着MSDN来学了,所以想是在这里记录下学习的过程和对知识的理解. 先从最基本的吧,依赖项属性 ...

  7. WPF中增加Month Calendar月历控件

    XAML代码:(这里使用了codeproject.com网站上的一个Dll,你可以在这里下载它:http://www.codeproject.com/cs/miscctrl/MonthCalendar ...

  8. 【转】WPF中Binding的技巧(一)

    WPF中Binding的技巧(一)   在WPF应用的开发过程中Binding是一个非常重要的部分. 在实际开发过程中Binding的不同种写法达到的效果相同但事实是存在很大区别的. 这里将实际中碰到 ...

  9. WPF中动态更新TextBlock文字中的超链接,文本

    1.------------------------------------------------------------------------- 修改超链接的文本文字: <TextBloc ...

随机推荐

  1. Linux运维必会的100道MySql面试题之(一)

    01 如何启动MySql服务 /etc/init.d/mysqld start service mysqld start Centos 7.x 系统 sysctl  start mysqld 02 检 ...

  2. SSH自动登录config文件配置

    title: SSH自动登录config文件配置 comments: false date: 2019-08-19 19:29:13 description: 更方便的 ssh 操作??? categ ...

  3. Chrome之谷歌插件开发

    最近碰到一个需求,需要在某个平台上批量的添加好友,如果是人工点击,可以操作,但是效率并不高,人工成本较高.就打算使用浏览器插件的方式来完成这件重复性的工作. 介绍: Chrome插件的本质就是一个由  ...

  4. ios / % 四舍五入 向上取整(ceil()) 向下取整(floor())

    1. / //Test "/"    cout << "Test \"/\"!" << endl;    cout ...

  5. Matlab 快速多通道积分图计算函数

    所谓快速多通道积分图计算,其实就是 cumsum2D. 我写了一个比较快的版本(比 VLFeat 的快),用 mex 编译一下就能用了. 代码 #include <string.h> #i ...

  6. Fuel9.0部署

    一.安装环境(准备工作): 1. 所需物理主机的要求如下 内存:8GB+,推荐16GB:(少于8GB的就免谈了) 磁盘:500GB+: 物理机OS:ubuntu-desktop-amd64 14.04 ...

  7. dedecms织梦调用二级和三级分类标签

    dedecms调用二级.三级以及调用栏目所有子栏目 <!--频道分类具体内容开始--> <div class="channel_sort"> {dede:c ...

  8. TensorFlow for python学习使用

    一.TensorFlow简介 TensorFlow 是由 Google Brain 团队为深度神经网络(DNN)开发的功能强大的开源软件库.当前流行的深度学习框架,从中能够清楚地看到 TensorFl ...

  9. 如何在Linux下安装JDK1.8

    本文会详细介绍如何在Linux下安装JDK1.8 首先要设置虚拟机的IP地址,不知道如何设置的话可以 翻看我的前一篇博客   http://www.cnblogs.com/xiaoxiaoSMILE/ ...

  10. 深入理解JVM线程模型

    1. jvm内存模型在描述jvm线程模型之前,我们先深入的理解下,jvm内存模型.在jvm1.8之前,jvm的逻辑结构和物理结构是对应的.即Jvm在初始化的时候,会为堆(heap),栈(stack), ...