首页 新闻 会员 周边 捐助

IIS虚拟目录无效

0
悬赏园豆:5 [已解决问题] 解决于 2015-04-23 16:54

网站发布到IIS以后,我在网站下面建立了一个虚拟目录,指向另外一台服务器的一个文件夹,并且给那个文件夹添加了访问权限。本来是点击WEB上的一个按钮,在文件服务器上的那个文件夹里生成一个文件夹,结果,点击以后,文件夹却在WEB的根目录下创建了,而不是在那个文件服务器上的文件夹里创建,这是为什么呢?

Andy·Li的主页 Andy·Li | 初学一级 | 园豆:185
提问于:2015-04-22 14:53
< >
分享
最佳答案
1

IO类再目录查找时,如果没有指定其他电脑位置,当然是在本机查找目录,创建文件夹。

IIS虚拟目录能使用远程机器那是IIS的功能,你用io类写的代码可没这么智能。

建议在配置文件里配置下实际机器的地址,创建文件时直接操作那台机器。

收获园豆:5
arg | 小虾三级 |园豆:1047 | 2015-04-22 15:23

string strPath = @"" + "Folder/" + path + strPJCode + "";
string tmpRootDir = System.Web.HttpContext.Current.Server.MapPath(System.Web.HttpContext.Current.Request.ApplicationPath.ToString());
string strPath2 = tmpRootDir + strPath.Replace(@"/", @"\");

Folder是虚拟目录,path是Folder指向的实际目录的路径

Web.config下面已经配置了,    

<identity impersonate="true" userName="xxx" password="xxx" />

并且WEB服务器也添加了那个用户,文件夹服务器也添加了那个用户,并为文件夹配置了权限。

 using (IdentityScope c = new IdentityScope(webUserName, strURL, webUserPwd))

DirectoryInfo dirinfo = Directory.CreateDirectory(strPath2);

 

用的是这种方式

Andy·Li | 园豆:185 (初学一级) | 2015-04-22 15:33

@斯玛特·威廉: 查看下strPath2 最终的值是什么。我估计实际还是指向了本机。

应该是:"文件服务器/strPath2" 

arg | 园豆:1047 (小虾三级) | 2015-04-22 16:48

@arg: IIS里面点击虚拟目录的浏览,能找到文件,文件的链接属性为:

http://192.168.0.160/00-Share/NSI-ProjectControlTool/LS000018/FOLDER_TEST.xlsx

也就是我的虚拟目录设置是正确的,那么,就是strPath2错了strPath2应该找的是本机路径,请问,我的路径应该怎么写?

Andy·Li | 园豆:185 (初学一级) | 2015-04-22 17:37

@arg:是不是我的path,必须加上文件服务器的地址,然后再加上文件服务器上文件夹的路径?

Andy·Li | 园豆:185 (初学一级) | 2015-04-22 17:40

@arg: 比如/00-Share/NSI-ProjectControlTool/是文件服务器上文件夹的地址,然后文件服务器是192.168.233.123,web地址是:192.168.0.160,strPath2该怎么写?

Andy·Li | 园豆:185 (初学一级) | 2015-04-22 17:46

@斯玛特·威廉: 直接  192.168.233.123  \    然后 + strPath2 ?

Andy·Li | 园豆:185 (初学一级) | 2015-04-22 19:52

@斯玛特·威廉: 对啊,ip地址(或电脑名)+"/"+路径

可以先用控制台程序试试先,成功后再移植到web里

arg | 园豆:1047 (小虾三级) | 2015-04-23 10:40
其他回答(1)
0

虚拟目录 指的是相对web站点的目录 可以虚拟出一个目录来 指向任意一个实际的目录

小眼睛老鼠 | 园豆:2731 (老鸟四级) | 2015-04-22 15:03

指向文件服务器的目录就不是实际目录了?者混分也不能这样啊。

支持(0) 反对(0) Andy·Li | 园豆:185 (初学一级) | 2015-04-22 15:05
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册