IIS服务在阿里云NAS上的最佳实践
IIS服务在阿里云NAS上的最佳实践
在我们的上一篇系列文章《Windows IIS服务挂载NAS共享文件存储》中,我们详细介绍了如何利用阿里云文件存储(NAS)服务作为共享存储的后端搭建Windows IIS服务器提供Web和FTP服务。
当用户使用了文中介绍的设置方法之后,在使用IIS服务时还是可能会碰到这样或者那样的问题。本文我们就将着重介绍一下IIS服务在NAS上使用时会碰到的一些常见问题以及解决方法,为用户提供IIS上云的最佳实践。
1. 请使用SMB文件卷
SMB是微软力推的远程文件共享协议,与Windows是完全兼容的。而来自Linux/Unix开源世界的NFS与Windows的兼容性是难以保证的。为了避免协议兼容性产生的相关问题,我们建议Windows用户将IIS服务搭建在SMB文件卷上。
2. 怎样让IIS服务更快更顺畅
如果用户在使用IIS服务时感觉速度慢,可以尝试以下几种加速方式:
2.1. 如果连接速度极慢
如果连接的速度非常慢,比如KB/s量级,请查看是否有以下问题:
2.1.1. NFS和SMB客户端发生冲突
查看客户端虚拟机上的这个注册表项:
[HKLM\System\CurrentControlSet\Control\NetworkProvider\Order\ProviderOrder]
,检查有没有Nfsnp和Webclient。如果有,请去掉后重启客户端机器。
图1:[HKLM\System\CurrentControlSet\Control\NetworkProvider\Order\ProviderOrder],检查有没有Nfsnp和Webclient
2.1.2. DNS问题
Ping挂载地址看是否能通,或者延时是否正常。如果延时较长,请尝试Ping挂载IP,如果Ping IP延时比Ping挂载地址的延时小很多,可能是DNS问题。(如果尝试直接挂载IP地址延时没有问题,那么可以确信是DNS问题,需要尽快解决DNS问题。产品化一定要使用DNS挂载)
2.2. 优化注册表
由于IIS使用SMB文件卷的方式访问一个文件时,IIS后台会有多次访问SMB文件卷的操作,每次访问的时间不长,但是多次的叠加可能会造成客户端总时间比较长。改进的方式可以参考附录《Performance tuning for file server clients》将其中提到的三个注册表项都调大,比如600, 或者更大。需要注意的是这些注册表项都在注册表
[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\services\LanmanWorkstation\Parameters]
之下,分别是
- FileInfoCacheLifetime
- FileNotFoundCacheLifetime
- DirectoryCacheLifetime
说明:如果找不到以上三个注册表项,请按照 Windows 的字段格式要求进行创建。
另外IIS自身也有若干注册表可以调整,详情请参见《Tuning IIS》。
2.3. 浏览器建议使用Chrome,不用IE
浏览器的区别相信不用多做介绍了。Chrome浏览器或者基于谷歌浏览器内核的浏览器速度都会更快一些的。
3. 常见错误及解法
3.1. HTTP错误500.19:无法访问请求的页面,因为该页的相关配置数据无效。错误码0x80070003
解法
在IIS管理器右边栏的 编辑网站->基本配置 中把物理路径改为UNC路径(\\sharename.nas.aliyuncs.com\myshare),不能用盘符路径。
3.2. Windows 2016: HTTP错误500.19。无法访问请求的页面,因为该页的相关配置数据无效。错误码0x800704F8
解法
Windows 2016需要修改注册表
[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\LanmanWorkstation\Parameters\AllowInsecureGuestAuth]
用户打开注册表编辑器之后需要找到
[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\LanmanWorkstation\Parameters]
, 然后用右键选取新建DWORD(32位)值。
《Windows IIS服务挂载NAS共享文件存储》文章中有提及。
3.3. Windows 2016:HTTP错误500.19。无法访问请求的页面,因为该页的相关配置数据无效。错误码0x8007003a
解法
Windows 2016需要在IIS管理器->基本设置->连接为中设置一个特定用户来访问网站文件,不能直接用Administrator。客户可以用《Windows IIS服务挂载NAS共享文件存储》中提到的办法创建iis_user作为特定用户访问文件。
3.4. 没有写访问权限
解法
需要在“C:\Windows\Microsoft.NET\Framework64\v4.0.30319\Temporary ASP.NET Files”目录中给连接身份(比如iis_user)读写权限。否则权限不足无法缓存文件到本地。
3.5. HTTP错误500.19 无法访问请求的页面,错误码0x80070043
解法
这种情况是因为连接远程路径发生验证错误。在IIS管理器点击左侧的网站选择出问题的网站,点击IIS管理器右侧的查看虚拟目录,点击测试设置,即可看到测试连接的授权失败。需要确定连接所使用的用户名密码是正确的。
3.6. 未能加载文件或程序集“Microsoft.CodeDom.Providers.DotNetCompilerPlatform, Version=1.0.3.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35”或它的某一个依赖项。指定的服务器无法运行请求的操作。 (异常来自 HRESULT:0x8007003A)
解法
这是Windows Server 2016的一个已知问题(见《Windows Server 2016加载dll错误》),当IIS挂载文件卷时使用本地用户而不是域用户时,加载文件卷里的dll会出现错误。推荐方法是使用Windows Server 2012,或者给Windows Server 2016虚拟机安装Active Directory功能生成一个AD域,就可以解决这个dll加载失败的问题。具体解法详见《通过安装和配置AD域解决Windows Server 2016的IIS无法运行SMB文件卷文件的问题》。
4. 附录
4.1. Windows IIS服务挂载NAS共享文件存储
https://help.aliyun.com/document_detail/54986.html
4.2. How to fix slow access to network shares
https://www.zubairalexander.com/blog/how-to-fix-slow-access-to-network-shares/
4.3. Performance tuning for file server client
https://docs.microsoft.com/en-us/windows-server/administration/performance-tuning/role/file-server/
4.4. Tuning IIS
https://docs.microsoft.com/en-us/windows-server/administration/performance-tuning/role/web-server/tuning-iis-10
4.5. Windows Server 2016加载dll错误
https://stackoverflow.com/questions/54245000/windows-server-2016-iis-hosted-website-failed-to-load-dll-on-a-remote-file-share
4.6. 通过安装和配置AD域解决Windows Server 2016的IIS无法运行SMB文件卷文件的问题
https://yq.aliyun.com/articles/692463
IIS服务在阿里云NAS上的最佳实践相关推荐
- 阿里云研发工程师刘睿:阿里云消息生态及最佳实践
2022 年 9 月 24 日,阿里云用户组(AUG)第 12 期活动在厦门举办.活动现场,阿里云消息中间件研发工程师刘睿,向参会企业代表分享了阿里云消息生态及最佳实践.本文根据演讲内容整理而成. 众 ...
- 第三方服务整合-阿里云OSS上传文件-填坑
目录 如下,引入aliyun-oss失败: 原因: 解决方法 OssController 如下,引入aliyun-oss失败: com.alibaba.cloud:aliyun-oss-spring- ...
- 【云栖计算之旅】线下沙龙第2期精彩预告:Docker在云平台上的最佳实践
Docker是一个开源的应用容器引擎,提供了一种在安全.可重复的环境中自动部署软件的方式,允许开发者将他们的应用和依赖包打包到一个可移植的容器中,然后发布到任何流行的Linux机器上,也可以实现虚拟化 ...
- 阿里云企业版实例迁移工具最佳实践
本篇内容主要分为两个部分: 1.企业实例迁移的背景与挑战 2.阿里云企业实例迁移工具详解 一.企业实例迁移的背景与挑战 阿里云物联网平台,分为公共区和企业实例.以餐馆用餐为例,公共区相当于在大堂用餐. ...
- 万元大奖邀您参与阿里云数加 MaxCompute最佳实践征文大赛
DT时代,越来越多的企业应用数据步入云端.与传统Hadoop相比,阿里云数加MaxCompute(原名ODPS)向用户提供了完善的数据导入方案以及多种经典的分布式计算模型,能够更快速的解决用户海量数据 ...
- 阿里云直播转点播最佳实践
摘要: 在前不久刚刚落幕的深圳云栖大会现场,有一个直播间体验项目引起了现场参会嘉宾的关注.云栖直播间是以视频云技术为基础,为云计算从业者量身打造了一个科技直播间,让每位嘉宾都可以过一把当"网 ...
- 行存、列存,堆表、AO表性能对比 - 阿里云HDB for PostgreSQL最佳实践
标签 PostgreSQL , GIS , PostGIS , Greenplum , 空间检索 , GiST , B-Tree , geohash 背景 <Greenplum 行存.列存,堆表 ...
- 代码干货 | 行存、列存_堆表、AO表性能对比-阿里云HDB for PostgreSQL最佳实践
本文来源于阿里云-云栖社区,原文点击这里. 标签 PostgreSQL , GIS , PostGIS , Greenplum , 空间检索 , GiST , B-Tree , geohash 背景 ...
- 阿里云NAS备份服务
摘要: 阿里云NAS(Network Attached Storage)是一款高可靠高可用高性能的分布式存储产品,应用场景包括ECS.HPC.Docker等共享存储.目前已经有大量的客户使用NAS作为 ...
最新文章
- [学习笔记]最小割之最小点权覆盖最大点权独立集
- SCI至上只是结果,而不是原因
- 使用示例_使用 COMSOL 软件模拟不规则形状并构建几何模型示例
- 什么是ECS以及如何使用登陆
- Git常用的基本命令
- Spring+mongodb集群集成(吐血教程) 转自:http://blog.csdn.net/qq_16497617/article/details/52817335
- ASP.Net Telerik RadGrid动态生成表头
- 逻辑回归算法背后的数学
- Training and investigating Residual Nets 自己分析
- python pil png合成gif储存时变黑_教你用Python花式搞定二维码
- request.getParameterMap()使用
- [原]ASP.NET MVC 3 Razor + jqGrid 示例
- Android反编译实战-去广告
- Linux中文显示乱码问题解决方法(编码查看及转换)
- mac 苹果系统安装pygame环境插件
- 认知偏差手册(67种认知偏差)
- Java中单引号和双引号的区别
- 通信原理包络是什么意思_2021年通信原理考研题库
- 5. C精华——字符串
- haosou属于搜索引擎的_中国的搜索引擎有哪些