0

我有一个由在 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 的线程才映射了驱动器。我不知道服务器配置中有任何更改。是否有任何选项可以阻止进程中的其他线程看到映射的驱动器?

4

1 回答 1

0

您需要寻找有效和无效之间的区别。要检查的事项是:

  • 是否可以在具有不同身份的不同应用程序池中运行。不工作的身份是不是失去了一些权利?
  • 有效的是否使用不同的用户名和密码来访问共享。不工作用户的密码是否过期?
  • 是否都映射到相同的驱动器号?驱动器是否用于另一个共享?
于 2013-08-06T19:53:09.240 回答