C# 终止windows进程时“访问被拒绝”IIS

C# 终止windows进程时“访问被拒绝”IIS,c#,asp.net-mvc,iis,asp.net-web-api,windows-authentication,C#,Asp.net Mvc,Iis,Asp.net Web Api,Windows Authentication,我创建了一个Web API,用于使用Web API安装最新版本的exe,并通过IIS服务器托管 该过程正在通过CLI下载->关闭->安装Exe 下载过程运行良好 关闭正在运行的exe时,捕获的异常访问被拒绝 下面是我用来关闭正在运行的exe的代码块 using System; using System.Collections.Generic; using System.ComponentModel; using System.Diagnostics; using System.Linq; usi

我创建了一个Web API,用于使用Web API安装最新版本的exe,并通过IIS服务器托管

该过程正在通过CLI下载->关闭->安装Exe

下载过程运行良好

关闭正在运行的exe时,捕获的异常访问被拒绝

下面是我用来关闭正在运行的exe的代码块

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Diagnostics;
using System.Linq;
using System.Net;
using System.Net.Http;
using System.Web.Http;
using WebGrease;

namespace API.Controllers
{
    public class TestController : ApiController
    {
        public string Get()
        {


            foreach (Process p in Process.GetProcessesByName("APPLICATION NAME"))
            {
                try
                {
                    p.Kill();
                    p.WaitForExit();
                }
                catch (Exception ex)
                {
                    return ex.Message.ToString();
                }
            }

            return "Aborted";
        }

    }
}

调试同一个代码块时,此代码块工作正常,但在另一台计算机上测试时,它表示访问被拒绝。我猜此问题与Windows身份验证有关。

调试上述代码时,将使用当前记录的窗口帐户作为运行WebAPI的凭据。但是,当项目托管在IIS中时,将使用其他一些内置系统帐户。这通常由IIS应用程序池标识确定。 尽管向IIS授予管理权限对网站安全有风险,但至少这可以解决您的问题。
如果问题仍然存在,请随时通知我。

这是在哪个帐户下运行的?该帐户是否具有管理权限?@JazzmanJim请指导如何检查。抱歉,我是新手。终止进程需要在一个线程上调用Kill方法,该线程的标识为本地管理员或运行进程的同一帐户。这是每个Windows开发人员都应该学习的基本Windows API要求。如果你以前从未读过这样的书,那是时候找一本Windows编程书籍了。顺便说一句,在VS中调试可以很容易地愚弄你,因为有很多不同之处,感谢你的努力,Abraham。因为我想将它部署到多台计算机上,所以为每台计算机设置用户名和密码实际上是不可行的。