我有一个PowerShell脚本,当我们的监控服务检测到网站关闭时,该脚本会自动运行.它应该停止AppPool(使用Stop-WebAppPool -name $AppPool;),等到它真的停止然后重新启动它.
有时它的过程实际上并没有停止,表现为错误
Cannot Start Application Pool:
The service cannot accept control messages at this time.
(Exception from HRESULT: 0x80070425)"
Run Code Online (Sandbox Code Playgroud)
当你试图再次启动它.
如果停止花费的时间超过一定的秒数(我会在经过多次停留以查看通常需要多长时间后选择那段时间),我想要终止这个过程.
我知道我可以通过这样做获取AppPool中工作人员使用的进程列表dir IIS:\AppPools\MyAppPool\WorkerProcesses\,
Process ID State Handles Start Time
---------- ----- ------- ----------
7124 Running
Run Code Online (Sandbox Code Playgroud)
但我无法弄清楚如何实际捕获进程ID,所以我可以杀死它.
我正在使用另一个开发人员的项目,该项目有数百个过时的方法警告.在已编译的dll中,我设置了抑制警告618(完整警告编号为CS0618).
有没有办法在网站上设置相同的设置?
问题是有太多过时的警告,我找不到任何重要的警告.
我正在开发一个可以从几种不同格式导入数据的应用程序.我想包括CSV和其他平面文件类型(简单)以及XLS和XLSX.
看起来我最好的选择是使用Interop.Excel,我理解只有安装了Excel才能使用.
有没有办法检查Interop.Excel是否可用并告诉用户必须安装Excel才能从XLS/XLSX导入?
我有一个脚本,可以创建一个图像并调用imagepng将其输出到浏览器.相反,我想将它保存到MySQL数据库(作为blob).我知道如何将文件读入准备好的语句中
while ($data = fread($fp, 1024)) {
$size += strlen($data);
$stmt->send_long_data(0, $data);
}
Run Code Online (Sandbox Code Playgroud)
问题是我不想imagepng写文件只是因为我可以把它读回数据库.
有一个简单的方法吗?
更新: 这是我尝试使用输出缓冲的方式:
ob_start();
imagepng($dst_r,null);
$img = ob_get_clean();
$db = Database::getInstance(); // Singleton on MySQLi
$s = $db->prepare("UPDATE " . $db->getTableName("Users") . " SET `Picture` = ? WHERE `UserID` = ?" );
$s->bind_param('bi', $img, $_POST['UserID']);
$s->send_long_data(0, $img);
$s->execute();
Run Code Online (Sandbox Code Playgroud)
数据库未更新且没有错误.
c# ×2
.net-4.0 ×1
asp.net ×1
automation ×1
iis ×1
mysqli ×1
php ×1
powershell ×1
web-config ×1