我有一个 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);
}
}
确实只能给有管理员权限的程序调用
开一个管理员的进程,然后你通过这个进程来调用,这样调用者就不用管理员了。
问题点:访问受限,需要管理员权限
解决方案如下
http://www.360doc.com/content/22/0326/17/13237883_1023437396.shtml