以下是小编帮大家整理的win asp.net权限设置问题及解决方法(1/2)linux网页制作(共含5篇),欢迎大家收藏分享。同时,但愿您也能像本文投稿人“天涯静处”一样,积极向本站投稿分享好文章。
ASP.NET相对于ASP,设置权限方面有点不同,有一点儿设置错了都运行不到,在网上搜索到的都是很垃圾的答案,没有一个用得到的,下面是我自己设置并从中遇到的问题摸索后得到的经验,给大家分享。
ASP.NET需要用到USERS组的权限,因为我也遇过很多次自己设置了权限之后发现网站运行不了,很郁闷。下面根据出现的问题,一点点解决,让你的ASP.NET运行起来。。
问题一:
未找到路径“C:”的一部分。
说明: 执行当前 Web 请求期间,出现未处理的异常。请检查堆栈跟踪信息,以了解有关该错误以及代码中导致错误的出处的详细信息。
异常详细信息: System.IO.DirectoryNotFoundException: 未找到路径“C:”的一部分。
解决:
在C盘加上Users组读取权限即可
本人试过:在C盘加上Users读取权限后可以访问了,但出于服务器安全问题,我又把UserS组去掉了(想到应该C盘下面还要一些文件夹要加入UserS权限即可)。去掉USERS组后,相继的问题以不同的错误方式显示出来了,如下面讲到的问题,然后再一一解决。
问题二:
页面弹出登录窗口点取消后出现:HTTP 错误 401.3 - 未经授权:访问由于 ACL 对所请求资源的设置被拒绝,
或者出现 HTTP 401.1错误
解决:
一,先要检查你的“身份检证和访问控制”中“对匿名使用下列windows用户账号”中的用户密码是否正确,还有检查你的网站 右键单击-权限中有没有加入此中用。
第一种方法试过都还是这的话,就看文件夹的权限设置了
在windows上加上Users权即可
问题三:
如果浏览到你整个网站出现乱码
解决:
那应该在 c盘 windows 加上users组的 读取权限即可
问题四:
编译错误
说明: 在编译向该请求提供服务所需资源的过程中出现错误。请检查下列特定错误详细信息并适当地修改源代码。
编译器错误信息: CS0016: 未能写入输出文件“c:windowsMicrosoft.NETworkv1.1.4322Temporary ASP.NET Filesroot345513e786f1794afvmzvzp7.dll”--“拒绝访问。 ”
解决:
应该在 c盘 windows下的temp 加上Users组的读、写、修改的权限即可
首页 1 2 末页
实际上本文是循序渐进的解决了php教程在iis环境下的“无权查看网页,基于所提供的凭据,您没有权限查看此目录或网页,http错误 401.3——访问被资源acl拒绝”问题,相比之下第一种和第二种用于定位问题所在,在实际中并不可取,因为这样不方便用户浏览页面,而且在容易造成安全隐患;最后第三种方法才是真正的解决方案。不过本文介绍的三种方法是为了让读者开阔思路,真正从实例理解iis中相应的设置信息,在关键时候可以解决大问题
一、故障现象:
笔者搭建环境采用的操作系统是windows xp,iis是系统自带的iis 5,php版本是5.2。按照网上的步骤笔者安装php程序并配置了iis中的相应映射参数建立了php环境,并且生成了名为index.php的文件作为测试用。在实际使用中却发现在服务器上通过浏览器访问127.0.0.1/index.php和localhost/index.php均出现错误提示,具体页面显示为“无权查看网页,基于所提供的凭据,您没有权限查看此目录或网页,http错误 401.3——访问被资源acl拒绝”。(如图1)
图1 点击看大图为了进一步排查故障笔者又在iis中通过在默认网站上点“浏览”来查看,结果收到的反馈消息和上面的一样,也是“http错误 401.3——访问被资源acl拒绝”,
(如图2)
图2 点击看大图然而在同一个站点的其他页面文件,只要不是php语言建立的都可以正常浏览和查看,包括html静态页面和asp教程动态网页文件。
二、修改验证方式解决问题:
既然iis反馈回的信息是“http错误 401.3——访问被资源acl拒绝”,所以笔者也针对访问权限进行排查故障工作。
第一步:在iis中的默认网站上右键选择“属性”来查看该站点的相关属性信息。(如图3)
图3 点击看大图第二步:在打开的默认网站属性处我们找到“目录安全性”标签,然后点“匿名访问和身份验证控制”旁边的“编辑”按钮。(如图4)
图4 点击看大图第三步:笔者在“身份验证方法”处看到了默认情况下iis是通过建立的iuser_china-914340f04以及相应的密码访问iis页面信息的,这个帐户也是由iis自动创建的。(如图5)
图5 点击看大图首页 1 2 3 末页
windows 2003 IIS6.0无法执行ASP问题解决方法
启用Asp支持
Windows Server 2003 默认安装,是不安装 IIS 6 的,需要另外安装,安装完 IIS 6,还需要单独开启对于 ASP 的支持。
启用Asp,进入:控制面板 -> 管理工具 -> IIS(Internet 服务器)- Web服务扩展 -> Active Server Pages -> 允许
控制面板 -> 管理工具 -> IIS(Internet 服务器)- Web服务扩展 -> 在服务端的包含文件 -> 允许
控制面板 -> 管理工具 ->iis(internet 服务器)- web服务扩展 -> active server pages -> 允许
控制面板 -> 管理工具 ->iis(internet 服务器)- web服务扩展 -> 在服务端的包含文件 -> 允许
还要启用父路径支持,
iis-网站-主目录-配置-选项-启用父路径
要注意权限分配
iis-网站-(具体站点)-(右键)权限-users完全控制
解决windows2003最大只能上载200k的限制。
先在服务里关闭iis admin service服务
找到windowssystem32inesrv下的metabase.xml,
打开,找到asp教程maxrequestentityallowed 把他修改为需要的值,
然后重启iis admin service服务
1、在web服务扩展 允许 active server pages和在服务器端的包含文件
2、修改各站点的属性
主目录-配置-选项-启用父路径
3、使之可以上传大于 200k的文件(修改成您要的大小就可以了,如在后面补两个0,就允许20m了)
c:windowssystem32inetsrvmetabase.xml
(企业版的windows2003在第592行,默认为 aspmaxrequestentityallowed=”204800“ 即200k
将其加两个0,即改为,现在最大就可以上载20m了。
aspmaxrequestentityallowed=”20480000“
nginx用于大型网站,但是也有一个很大的问题那就是跨域问题,下面我们来看看关于修改php教程源码来解决跨域的问题,下面来看方法。
google搜之有两个比较广为流传的方法,其中最完美的莫过于直接修改php源代码,对打开目录进行鉴权(搜出来的资料最早是anxsoft.com提供的代码)。
因为需要更改php源程序后,重新编译php。在使用fpm方式安装时,打补丁过程中会修改php的文件,所以需要在打完fpm补丁后再修改php源程序。
tar zxvf php-5.2.14.tar.gz
gzip -cd php-5.2.14-fpm-0.5.14.diff.gz | patch -d php-5.2.14 -p1
cd php-5.2.14/
vi main/fopen_wrappers.c
找到php_check_open_basedir_ex方法,在char *end;和pathbuf = estrdup(pg(open_basedir));之间插入以下的代码:
char path_copy[maxpathlen];
int path_len;
path_len = strlen(path);
if (path_len >= maxpathlen) {
errno = eperm;
return -1;
}
if (path_len > 0 && path[path_len-1] == php_dir_separator) {
memcpy(path_copy, path, path_len+1);
while (path_len > 1 && path_copy[path_len-1] == php_dir_separator) path_len--;
path_copy[path_len] = '';
path = (const char *)&path_copy;
}
char *env_doc_root;
if (pg(doc_root)) {
env_doc_root = estrdup(pg(doc_root));
} else {
env_doc_root = sapi_getenv(”document_root“, sizeof(”document_root“)-1 tsrmls_cc);
}
if (env_doc_root) {
int res_root = php_check_specific_open_basedir(env_doc_root, path tsrmls_cc);
efree(env_doc_root);
if (res_root == 0) {
return 0;
}
if (res_root == -2) {
errno = eperm;
return -1;
}
}
然后编译安装php,
并php.ini的open_basedir配置
open_basedir = ”/tmp/:/var/tmp/“
这样就彻底解决了,webshell跨站点目录访问问题
默认情况下,windows7安装时是不会自动安装iis,只能手动安装,
1.安装IIS
开始-控制面板-程序-打开或关闭windows功能
2.如图选择安装
VS2005 中,如果要调试站点的话,必须有“Windows身份验证”
“摘要式身份验证” 是使用 Windows 域控制器对请求访问 Web
2、双击内页中的
3、配置默认网站
4、填写 物理路径、应用程序池,点OK即可:IIS 的应用程序池根据托管管道模式分了两种类型:集成和经典
集成 .NET 模式下,应用程序不应在
配置节中指定 ASP.NET 模块组件,而应使用
经典 .NET 模式 则是我们以前习惯的IIS 6 的方式,没有上述限制。
二、现在出现了安装Windows功能的选项菜单,注意选择的项目,
我们需要手动选择需要的功能,下面这张图片把需要安装的服务都已经选择了,大家可以按照图片勾选功能。
三、安装完成后,再次进入控制面板,选择“管理工具”,
进入后双击 Internet(IIS)管理器选项,进入IIS设置。
(注意是“ Internet(IIS)管理器”而不是“ Internet(IIS)6.0管理器,
至于有什么差别,我也没有试过,你如果有空可以试试)
四、现在进入到IIS的控制面板,
五、选择左边小窗口的 Default Web Site,
如果没有出现就单击几下XXXXXX-PC(电脑的型号)就可以看到Default Web Site,
然后双击中间窗口出现的“ASP”选项。
六、IIS中ASP“父路径”是没有启用的,要开启父路径,选择True,搞定父路径选项。
七、配置IIS的站点。单击右边的“高级设置”选项,则可以设置网站的目录(最好将其设置在某一盘符的根目录下)。
八、点击右侧的“绑定”,设置网站的端口。(至于端口我也不知道是多少,
不妨照着图片用8081,这个端口反正是没错的,我设置的端口也是8081)
九、点击“默认文档”,设置网站的默认文档。(最好按着图片来,注意上下顺序)
至此,Win7旗舰版的IIS设置已经基本完成了,ASP+Access程序可以调试成功。
正确将网站放在规定盘符下,然后可向地址栏中输入localhost:8081,
按下回车后即可看见你自己做的网站了。
二、自己碰到的问题:
1、首先要确认登陆计算机的用户是否具有最高的权限,如果没有,应点击“计算机--管理--本地用户和组” ,点击右边的“Administrator”用户名,右键选择“属性”,去掉“常规--账户已禁用”前面的选择,点击确定即可。
2、浏览网页时报错:HTTP 错误 500.22 - Internal Server Error 检测到在集成的托管管道模式下不适用的 ASP.NET 设置。
解决方法:在IIS管理控制面板,点击“应用程序池”,在右边的“托管管道模式”选项中,把默认值为Integrated(集成),我们将其修改为Classic(经典),即可。
3、在”Default Web Site"的选项中,没有ASP,ASP.NET页面等选项,解决方法:需要在安装IIS时,将所有的选项选上。
4、设置起始页面,点击“默认文档”,可以设置起始页。