我得到了 UnknownErrorException,命名管道的错误代码为 1346,代码如下(注意:客户端和服务器在不同的机器上)
服务器代码:
public static void ReadFile()
{
string contents = File.ReadAllText(@"d:\123.txt"); <-- exception
}
public static void Main()
{
var pipe = new NamedPipeServerStream("testpipe", PipeDirection.InOut);
while (true)
{
pipe.WaitForConnection();
pipe.RunAsClient(ReadFile);
}
}
客户代码
NamedPipeClientStream pipeClient =
new NamedPipeClientStream("\\jachang-w1", "testpipe",
PipeDirection.InOut, PipeOptions.None,
TokenImpersonationLevel.Impersonation);
pipeClient.Connect();
我从谷歌搜索了信息,发现错误是“ERROR_BAD_IMPERSONATION_LEVEL,没有提供所需的模拟级别,或者提供的模拟级别无效”
但我已经在客户端设置了 TokenImpersonationLevel.Impersonation,所以服务器应该可以访问它。有人能告诉我这是怎么回事吗?我该怎么办?
谢谢