windows 服务 只能给 有管理员权限的程序 调用吗?

可以学习啦哈哈哈 2023-07-18 14:09:38

我有一个 Windows 服务  ChangeNetwork

 

 

 

 

 

 

 

 

但我用一个本机客户端程序去调用 这个【服务】 时,一直在报 【System.UnauthorizedAccessException:“对路径的访问被拒绝。”】这个错。

需要怎么设置才能让 这个【服务】支持 【非管理员权限】的程序可以访问到?

这个是我【客户端】调用【服务】的程序

public void ChangeNetwork(string ipAddress, string subnetMask, string defaultGateway, string dns)
        {
            try
            {
                using (var pipeClient = new NamedPipeClientStream(".", "ChangeNetworkPipe", PipeDirection.InOut))
                {
                    pipeClient.Connect(); // 连接到管道服务器

                    string request = $"{ipAddress},{subnetMask},{defaultGateway},{dns}";
                    byte[] requestBytes = System.Text.Encoding.UTF8.GetBytes(request);

                    pipeClient.Write(requestBytes, 0, requestBytes.Length); // 发送请求

                    // 读取响应
                    byte[] responseBytes = new byte[1024];
                    int bytesRead = pipeClient.Read(responseBytes, 0, responseBytes.Length);
                    string response = System.Text.Encoding.UTF8.GetString(responseBytes, 0, bytesRead);

                    Console.WriteLine("Response: " + response);
                }
            }
            catch (Exception ex)
            {
                Console.WriteLine("Error: " + ex.Message);
            }
        }

...全文
139 6 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
CSDN-Ada助手 2023-07-18
精选
  • 打赏
  • 举报
回复
您的问题已经帮您同步至问答, 链接: https://ask.csdn.net/questions/7979326, 请您保持关注, 如果回答有帮助解决此问题, 麻烦您动动小手给相关的回答点赞, Ada会在评论区为您更新结题状态
吉普赛的歌 2023-07-18
  • 打赏
  • 举报
回复

你的任务比较复杂,建议直接改下服务的账户为管理员吧:
如果实在不想改服务,可以改文件和文件夹为 everyone 权限试下。

img

  • 举报
回复
@吉普赛的歌 此帐号 里面,没有everyone 只有 administrator local service network service
吉普赛的歌 2023-07-18
  • 举报
回复
@可以学习啦哈哈哈 方案2不是改账号,是右键改那个文件夹的权限。
  • 举报
回复
@吉普赛的歌 文件夹 权限 everyone 以经全加了
1条回复

111,102

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • AIGC Browser
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧