我有一个由在 Windows Server 2008 R2 上运行的 IIS7 托管的 C# WCF Web 服务。我的 Web 服务需要访问网络共享,因此在 Application_Start 期间我执行以下操作:
NETRESOURE nr = new NETRESOURCE();
nr.dwScope = RESOURCETYPE_DISK;
nr.lpRemoteName = string.Format(@"\\{0}\{1}", MyServer, MyShareName);
nr.lpLocalName = @"X:";
string UserName = MyWebSvcLoginName;
string Password = MyWebSvcPassword;
uint result = WNetAddConnection2(ref nr, Password, UserName, CONNECT_UPDATE_PROFILE);
这已经运行了 3 个月。Web 服务进程中的所有线程都可以访问映射的驱动器。现在,突然之间,只有调用 WNetAddConnection2 的线程才映射了驱动器。我不知道服务器配置中有任何更改。是否有任何选项可以阻止进程中的其他线程看到映射的驱动器?