asp.net项目添加远程共享目录作为虚拟目录要怎么设置?
服务器IIS网站如何添加远程共享目录作为虚拟目录?
VS调试工具IIs express又是怎样添加远程共享目录作为虚拟目录?
网上找的资料都不成功,最后还是结合网上的资料,以及自己的试验解决了。
-----------------------分三步-----------------------------------------------
第一步,设置权限及远程共享目录;
第二步,设置IIs express访问共享目录,实现vs调试;
第三步,设置服务器IIs访问远程共享目录,实现网站部署;
-----------------------------------------------------------我是一根线,下边才是具体操作步骤-------------------------------------------------------------------------第一步:设置权限及远程共享目录
(注:A服务器为ASP.NET程序所在服务器(VS的IIS express或服务器IIS),B服务器为共享文件夹所在服务器)
- 在两台服务器上建立相同用户名、相同密码的Windows帐户(A与B服务器都要建),比如假设这里用户名是ZzkIndexer,密码是12345678。
- 取消两台服务器上的ZzkIndexer帐户的远程控制(Remote Control)权限(让这个帐户拥有尽可能少的权限),如下图:
- 将B服务器上的ZzkIndexer帐户移出所有用户组(包含Users),如下图:
不属于任何用户组?是的,不要怀疑,已经过实践检验。
- 在B服务器上创建共享文件夹ZzkIndex并给ZzkIndexer帐户授予写权限,有两个权限需要设置,一个是文件系统权限,一个是共享权限。
文件系统权限设置如下图: 共享权限设置如下:
第二步:设置IIs express访问共享目录,实现VS调试访问远程共享目录
- 在A服务器的ASP.NET源程序的web.config文件中,添加帐户模拟设置:
<system.web> <identity impersonate="true" userName="ZzkIndexer" password="12345678"/> </system.web>
- 在A服务器上,设置“C:\Windows\Microsoft.NET\Framework\v4.0.30319\Temporary ASP.NET Files”的文件系统权限,授予ZzkIndexer帐户修改权限(注:根据程序是x86或x64选择对应文件夹Framework或Framework64;v4.0.30319为当前.NET Framework版本号)。 否则,运行时会出现错误:The current identity (ZzkIndexer) does not have write access to 'C:\Windows\Microsoft.NET\Framework\v4.0.30319\Temporary ASP.NET Files'.
- 在A服务器上,设置“C:\Users\当前登录用户\AppData\Local\Temp\Temporary ASP.NET Files”的文件系统权限,授予ZzkIndexer账户修改权限(注:当前登录用户,为window系统登录用户名;此项设置为非必要设置,仅当网站运行时仍提示拒绝访问时使用 )
- 在A服务器上,编辑“程序根目录\.vs\config\applicationhost.config”文件,将远程共享目录添加到iis express的虚拟目录,详情请看https://blog.csdn.net/ningxi_/article/details/103618386
- 到此,远行VS里的项目,就可以像项目内部文件的虚拟路径一样,正常读写远程共享目录里的文件了。
第三步:设置服务器IIs访问远程共享目录,实现网站部署;
1、在A服务器的IIS中创建网站,在网站上添加虚拟目录 ,指向B服务器的共享文件夹,如下图:
2、选中A服务器IIS上的虚拟目录,打开“身份验证”功能,启动并设置“匿名身份验证”的特定用户为ZzkIndexer。
3、设置成功,重启网站,运行成功。