c#程序 右击管理员权限运行,以及添加了<requestedExecutionLevel level="requireAdministrator" uiAccess="false" />
在程序内部调用bat进行解压web站点压缩包,调用代码:
Process p = new Process();
p.StartInfo.FileName =batPath;
p.StartInfo.UseShellExecute = true;
p.StartInfo.CreateNoWindow = true;
p.StartInfo.Verb = "RunAs";
p.Start();
p.WaitForExit();
p.Close();
bat内容
cd /d %~dp0
%1 start "" mshta vbscript:createobject("shell.application").shellexecute("""%~0""","::",,"runas",1)(window.close)&exit
@echo off
title Install website
COLOR 0A
@set Predir=C:\IISData
@echo Extract site Zip...
E:\VsDemo\Release\Software\7z.exe x "E:\VsDemo\Release\Site\Web\8009.zip" -aos -o"C:\IISData\XMSL_Cloud"
@echo %ERRORLEVEL%
如果采用这种解压方式,创建站点后,访问站点会出现异常(未将对象引用到实例化对象),如果手动打开bat去解压,创建的站点,访问则没有这个问题。
图片地址:https://github.com/apgk/test/blob/master/QQ%E6%88%AA%E5%9B%BE20181108104722.png
视频地址:https://github.com/apgk/test/blob/master/Video_2018-11-08_100836.wmv
我试过代码中直接是File.Copy 过去,照样出现上面的异常。
求解决,谢谢。(或者求一份自动发布iis站点的demo)