参照网络上的文章,自己加入实际部署的时修改的重点部分,用黑色加粗表示
之所以采用共享发布的方式,是因为本单位仅有一个公网IP,域名解析后80端口转发只能转到局域网内指定的一个IP上 ,
为避免网址后面出现带端口的情况,即使通过转发,也不是很好看。因此共享是唯一解决方式

环境

1、Web服务器 WebServer :192.168.1.2  windows 2003 
2、 共享文件夹Server   ShareServer :192.168.1.3  windows 2008 R2

3、.net Framework 4.0


配置

准备工作:

需要像建立本地站点一样先随便建立一个站点目录先随便选 ,随后再更改,注意身份验证和站点权限设置如下,用户名选择刚才新建的用户,以方便设置权限和排查故障。新建一个独立的进程池。






一、共享账户的建立

1、在 WebServer 上新建一个用户以访问 ShareServer 上的共享目录,为了web文件能正常运行,同时又避免使用户拥有过高的权限,我们可以直接把该用户归入 Guests(win2003中) 组,或者 IIS_IUSRS(win2008中) 组内,这样就一举多得了。我这里建立的用户名为 test ,密码为 123456。 (本案例中 test用户在不同操作系统中都统一设置为Guests组,且仅属于guests组)



2、在 ShareServer 中也建立一个同名同密码的用户(必须一致,否则在UNC验证的时候会无法登陆)。这里用户名也应该为 test ,密码为 123456,也归入Guests组中。

二、共享文件夹权限设置

1、ShareServer 中使用文件夹共享工具,共享出一个目录,共享名为 web ,共享权限设置为 Administrators 组 读取+写入,test用户 读取(如果需要存东西,就加上 写入 权限);这里 Administrators 用户必须拥有 读取+写入 权限,否则在 WebServer 里使用IIS直接设置的时候会提示无法保存设置。(本案例中web设置为默认的system administrators administrator的完全权限,creator owner的默认权限,guests组的读写权限 test的读写权限 users组的默认权限,权限设置是重点

三、IIS中引用共享目录

1、在资源管理器的地址栏输入共享目录提示输入用户名和密码,确保共享文件夹可以访问到,输入之后记得保存密码。若忘记勾选,在运行中输入control userpasswords2 点击高级可进行保存。

WebServer 中IIS里建立站点或虚拟目录,路径指向 \\192.168.1.3\web ,连接认证用户手动输入为 test ,密码 123456。当这一步完成的时候,您可以通过web方式访问该站点或虚拟目录中的来自 ShareServer 共享目录的资源,但是 ASP.Net 还没有权限执行。

(此步骤也是重点: 在点击“连接为”–>取消“在验证到网络目录的访问时总是使用已经过身份验证的用户凭据”  输入在第0步创建的用户名和密码,否则只能访问html而无法访问aspx页面

2、ASP.Net的权限设置:从站点根目录下打开 web.config 文件,在 <system.web> 节点以内,加入以下内容:<identity impersonate="true" userName="test" password="123456" />。其实就是修改了 ASP.Net 执行的认证方式,把认证方式修改为 ASP.Net模拟用户 ,这样就能让 ASP.Net 通过刚才建立的共享账号执行和访问 ShareServer 中的资源了。(本案例未操作此步骤,仍然成功访问aspx页面


附注

1、本文中的ASP.Net权限设置内容中,直接把用户和密码都写入 web.config 文件内,这样做安全性不是很好,可以使用以下方法提高安全性:从微软下载工具 aspnet_setreg.exe(附送下载地址:http://download.microsoft.com/download/2/9/8/29829651-e0f0-412e-92d0-e79da46fd7a5/aspnet_setreg.exe)。

在 WebServer 中使用 aspnet_setreg.exe 执行以下指令:

aspnet_setreg.exe -k:SOFTWARE\AspNetIdentityAPP\identity -u:"test" -p:"123456"

备注:这里的AspNetIdentityAPP\identity 可以根据你个人的爱好来设置,只要在读取的地方对应就行了。成功执行后打开注册表编辑器,打开目录 HKLM\SOFTWARE\AspNetIdentityAPP\identity 会看到 userName 和 password 已经被系统加密了。

2、授予IIS进程用户权限,以方便IIS用户读取这个加密后的配置,右键-->权限,加入 NetWork Service组(如果是WIN2003以下版本,IIS进程用户应为ASPNET) 读取 权限。(我的配置中没有操作这一步也)

打开站点根目录下的 web.config ,把 <identity impersonate="true" userName="test" password="123456" /> 替换为

<identity impersonate="true" userName="registry:HKLM\SOFTWARE\AspNetIdentityAPP\identity\ASPNET_SETREG,userName" password="registry:HKLM\SOFTWARE\AspNetIdentityAPP\identity\ASPNET_SETREG,password" />。本案例未操作此步骤,仍然成功访问aspx页面)

保存退出即可,这样就完成了整个过程,安全性也得到了提升。

错误

消息 1

安全例外说明: 该应用程序试图执行安全策略不允许的操作。若要授予此应用程序所需的权限,请与您的系统管理员联系,或更改配置文件中的应用程序的信任级别。
异常详细信息: System.Security.SecurityException: 安全错误。

消息 2

在服务器错误 / ApplicationName 应用程序。
分析器错误说明: 该请求提供服务所需资源的分析过程中出现错误。请检查下列特定的分析错误详细信息,并适当地修改源文件。 
分析器错误消息: 无法加载类型 ApplicationName.Global。

解决方案

若要解决此问题,授予 $ 远程共享的 FullTrust 权限执行以下操作:
在 Web 服务器上打开管理的工具,然后双击 Microsoft.net 框架配置。
展开 运行库安全策略,展开 计算机,然后再展开 代码组。
用鼠标右键单击 All_Code,然后单击 新建。
选择 创建新的代码组。使您的代码组与应用程序共享的名称的相关名称。
单击 下一步 选择此代码组的条件类型 列表中选择 URL。
在 URL 框中键入下面的格式中共享的路径:
file:\\ 计算机名 \ 共享名 \ *
注意computername 替换为承载远程共享的计算机的名称。 sharename 替换该共享的名称。
单击 下一步。在下一页上选择 使用现有权限集,选择,然后选择 FullTrust。
单击 下一步,然后单击 完成。
重新启动 Microsoft Internet Information Services (IIS) 重新启动 ASP.NET 辅助进程。
如果未显示在 管理工具 下 Microsoft.net 框架配置,您可以安装.net 框架 SDK 添加 Microsoft.net 框架配置。
或者运行以下命令来进行更改:
Drive:\WINDOWS\Microsoft.NET\Framework\v2.0.50727\caspol.exe -m -ag 1 -url "file:\\computername\sharename\*" FullTrust -exclusive on  (本案例中进行了此步骤操作,不知道本步骤是否重要)


===其他===

有些资料中使用了管理工具-组件服务来设置,经尝试,这儿的设置是没有起什么作用的。

====

参考资料

http://flysky.fm1062.com/post/20090410-1.aspx

http://support.microsoft.com/default.aspx?id=320268

IIS通过共享文件夹发布aspx程序站点(部分为原创)相关推荐

  1. 访问ad服务器共享文件夹,如何通过AD来发布共享文件夹和打印机

    在AD中发布文件夹 在AD里包括一个共享文件夹需要两步.首先,你必须建立一个文件夹并共享它,然后再在AD里发布它.把共享文件夹发布在AD里是可选的.如果你没有在AD里发布共享文件夹,客户仍可以在资源浏 ...

  2. Oracle VM VirtualBox Ubuntu设置共享文件夹

    一.原因 一.为什么需要共享文件夹 在进行程序开发的过程中,我们经常要在主机与虚拟机之间传递文件,比如说,源代码位于虚拟机,而在主机下阅读或修改源代码,这里就需要使用到 「共享文件」 这个机制了. 二 ...

  3. 取消Windows右键共享文件夹同步

    新配电脑,ThinkPad T470 右键老是显示共享文件夹同步 控制面板 -> 程序 -> 程序和功能 -> 找到office -> 更改 添加或删除功能 搞定

  4. SharePoint 2013创建应用程序时IIS端口文件夹下没文件

    最近SharePoint 2007迁移到2013的时候,碰到创建应用程序时IIS端口文件夹下没文件的问题,网上找了大把的原因,终于在这里找到了解决方案: Fix: 1. Open IIS on the ...

  5. android 程序 共享文件,如何从Android智能手机访问Windows共享文件夹 | MOS86

    为了从Android设备访问Windows PC上的共享文件,您可以使用名为ES File Explorer File Manager的第三方应用程序.在此之前,您必须检查您是否有足够的权限访问数据. ...

  6. IIS访问共享文件详解

    原文:IIS访问共享文件详解 前言 公司同事做了一个报表系统,需要做集群部署,本来是一件挺容易的事,但是部署过程中却遇到啦种种蛋疼问题. 问题1.我们的报表使用的是微软的水晶报表,需要上传报表的配置文 ...

  7. 服务器与本地文件共享文件夹,云服务器对本地服务器共享文件夹

    云服务器对本地服务器共享文件夹 内容精选 换一换 当您成功创建私有镜像后,镜像的状态为"正常",您可以使用该镜像创建服务器实例或云硬盘,也可以将镜像共享给其他帐号,或者复制镜像到其 ...

  8. 宝塔asp php,宝塔Windows面板部署ASP、ASPX程序WEB网站环境方法

    宝塔Windows面板部署ASP.ASPX程序WEB网站环境方法 一般Windows系统建站用户可能较多是程序是ASP或者是ASPX的,这样只能在Windows系统中才能运行.说实话,对于中文软件来说 ...

  9. 管理共享文件夹和使用FTP服务器

    DAY04Windows 实验一 实验名称:创建共享通过UNC及映射网络驱动器访问 实验描述:在一台主机上创建共享文件夹,让同一网络的其他主机能够访问共享的文件夹 实验拓扑: 实验步骤 步骤一:在一台 ...

最新文章

  1. dom元素滚动条高度 js_DOM 事件与事件委托
  2. php编程输出心形图案_利用php输出不同的心形图案,php心形图案_PHP教程
  3. add1顶部菜单html,add1.html
  4. alexnet vgg_从零开始:建立著名的分类网2(AlexNet / VGG)
  5. 学完php在学python_写给PHP程序员的 Python学习指南(建议去看原文)
  6. java 读取project_java project 和 java web project 获取路径问题
  7. 以下()不是python的数值运算操作符_python运算符与数据类型
  8. ASP.NET-第三天-加强课程
  9. centos 7的systemctl
  10. matlab 8点fft蝶形图,FFT快速傅里叶变换(蝶形算法)详解精要.ppt
  11. 微信Windows版如何从旧电脑迁移聊天记录到新电脑
  12. oracle10g 杨忠民,开题报告 基于J2EE的DRP系统设计
  13. 进制转化(二进制,八进制,十进制,十六进制)详细教程
  14. Arcgis空间连接
  15. 蚂蚁市场教程:电视安装看B站(哔哩哔哩)TV版
  16. 免费网站地图制作工具 —— Sitemap X
  17. 拓途公众号数据分析工具梳理企业公众号要做的分析!
  18. CTO、技术总监和技术经理有啥区别?
  19. java软电话_软电话使用呼叫中心的方法与流程
  20. 电信各种视频免流卡申请地址合集附地址失效解决方法

热门文章

  1. BOSS 直聘牛逼:取消 996,但不取消「周末加班费」
  2. 自定义java对象转换工具类
  3. GDR(Gradual Decoding Refresh, GradualDecoder Refresh)
  4. c语言编写51单片机中断程序,执行过程是怎样的?
  5. 标准模板库STL(Standard Template Library)
  6. 中断处理过程示意图_中断和中断处理流程
  7. 51单片机流水灯现象1
  8. [引擎搭建记录] 时间性抗锯齿(TAA)
  9. MySQL 第三章习题
  10. 联想潮5000 BIOS 解锁 CFG Lock