簡體   English   中英

Directory。存在於ASP.NET中的網絡路徑

[英]Directory.Exists for network paths in ASP.NET

我正在嘗試獲得:

Directory.Exists(@"E:\subdirectory")

當E:是持久映射的網絡驅動器時,從ASP.NET運行時返回“ true”。 我使用以下命令從用戶上下文下運行的命令行將其映射,該命令行成功返回並且不提示輸入憑據:

net use E: \\servername\sharename /persistent:yes

此時,我完全在本地運行。

當我從控制台應用程序或linqpad運行Directory.Exists行時,它返回true。 當我從在IIS( 不是 IIS express)下運行的ASP.NET應用程序運行此文件時,它返回false。

我將應用程序池更改為使用與本地運行相同的用戶帳戶。 我已經通過以下方式驗證了此效果:

  • 檢查我的Windows進程列表,並確保w3wp.exe在我的用戶帳戶下運行。
  • 將我的ASP.NET應用程序附加到w3wp.exe並設置一個斷點,然后檢查Environment.UserName和Environment.UserDomainName以驗證我是否在用戶帳戶的上下文中運行。

但是,我的ASP.NET應用程序在檢查網絡共享時仍然返回false。

為什么是這樣?

映射的網絡驅動器綁定到用戶會話。 IIS在會話0中運行,映射的驅動器在最可能的會話1中運行。

我不知道在為會話創建網絡驅動器時為其他會話顯示網絡的任何方法,我認為您無需使用E:\\ ,而是使用\\\\servername\\sharename作為路徑。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM