IIS服务在阿里云NAS上的最佳实践

本文涉及的产品
对象存储 OSS,20GB 3个月
日志服务 SLS,月写入数据量 50GB 1个月
文件存储 NAS,50GB 3个月
简介: 本文我们就将着重介绍一下IIS服务在NAS上使用时会碰到的一些常见问题以及解决方法,为用户提供IIS上云的最佳实践。

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


图2:HTTP错误500.19:无法访问请求的页面,因为该页的相关配置数据无效。错误码0x80070003

解法

在IIS管理器右边栏的 编辑网站->基本配置 中把物理路径改为UNC路径(\\sharename.nas.aliyuncs.com\myshare),不能用盘符路径。

3.2. Windows 2016: HTTP错误500.19。无法访问请求的页面,因为该页的相关配置数据无效。错误码0x800704F8


图3: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


图4: Windows 2016: HTTP错误500.19。无法访问请求的页面,因为该页的相关配置数据无效。错误码0x8007003a

解法

Windows 2016需要在IIS管理器->基本设置->连接为中设置一个特定用户来访问网站文件,不能直接用Administrator。客户可以用《Windows IIS服务挂载NAS共享文件存储》中提到的办法创建iis_user作为特定用户访问文件。 

3.4. 没有写访问权限


图5:没有写访问权限

解法

需要在“C:\Windows\Microsoft.NET\Framework64\v4.0.30319\Temporary ASP.NET Files”目录中给连接身份(比如iis_user)读写权限。否则权限不足无法缓存文件到本地。

3.5. HTTP错误500.19 无法访问请求的页面,错误码0x80070043


图6: HTTP错误500.19。无法访问请求的页面,错误码0x80070043

解法

这种情况是因为连接远程路径发生验证错误。在IIS管理器点击左侧的网站选择出问题的网站,点击IIS管理器右侧的查看虚拟目录,点击测试设置,即可看到测试连接的授权失败。需要确定连接所使用的用户名密码是正确的。

图7: 点击IIS管理器右侧的查看虚拟目录,点击测试设置,即可看到测试连接的授权失败   

3.6. 未能加载文件或程序集“Microsoft.CodeDom.Providers.DotNetCompilerPlatform, Version=1.0.3.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35”或它的某一个依赖项。指定的服务器无法运行请求的操作。 (异常来自 HRESULT:0x8007003A)


图8:Windows Server 2016未能加载文件或程序集

解法

这是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

相关实践学习
基于ECS和NAS搭建个人网盘
本场景主要介绍如何基于ECS和NAS快速搭建个人网盘。
阿里云文件存储 NAS 使用教程
阿里云文件存储(Network Attached Storage,简称NAS)是面向阿里云ECS实例、HPC和Docker的文件存储服务,提供标准的文件访问协议,用户无需对现有应用做任何修改,即可使用具备无限容量及性能扩展、单一命名空间、多共享、高可靠和高可用等特性的分布式文件系统。 产品详情:https://www.aliyun.com/product/nas
目录
相关文章
|
7天前
|
传感器 数据采集 监控
基于阿里云MQTT服务,设计一个STM32的智能光伏控制系统
这篇文章详细介绍了利用STM32F103C8T6单片机实现光伏发电系统的关键技术。全文分为四章:第一章阐述了光伏发电的背景、意义及应用场景,强调其在绿色能源领域的重要性。第二章介绍了如何通过STM32F103C8T6及光敏电阻和伺服电机实现光线追踪系统,详细描述了硬件选择、连接及使用HAL库编写的单片机程序。第三章讲解了最大功率点追踪(MPPT)的原理,并展示了如何利用STM32F103C8T6和相关传感器、DC-DC转换器实现MPPT功能。第四章描述了如何通过STM32F103C8T6与SIM7600CE 4G模块连接到阿里云MQTT服务,实现设备状态数据的远程传输和控制。本文提供了全面的硬
55 2
|
1月前
|
弹性计算 运维 Java
最佳实践:阿里云倚天ECS在千寻位置时空智能服务的规模化应用
阿里云、平头哥及安谋科技联合举办的飞天技术沙龙探讨了倚天Arm架构在业务创新中的应用。活动中,千寻位置运维专家分享了将核心业务迁移到倚天处理器ECS实例的成功案例,强调了倚天处理器的高能效比和降本增效优势。迁移过程涉及操作系统、CICD系统和监控系统的适配,以及业务系统的性能测试。目前,千寻已迁移了上千台ECS实例到倚天处理器,实现了成本和效率的显著提升。未来计划继续扩展倚天处理器在核心业务和K8S中的应用。
|
1天前
|
存储 运维 Serverless
函数计算产品使用问题之不再使用NAS存储服务且希望停止扣费时,该如何操作
函数计算产品作为一种事件驱动的全托管计算服务,让用户能够专注于业务逻辑的编写,而无需关心底层服务器的管理与运维。你可以有效地利用函数计算产品来支撑各类应用场景,从简单的数据处理到复杂的业务逻辑,实现快速、高效、低成本的云上部署与运维。以下是一些关于使用函数计算产品的合集和要点,帮助你更好地理解和应用这一服务。
|
2天前
|
Perl
Centos8同步时间(阿里云NTP服务为例)
Centos8同步时间(阿里云NTP服务为例)
10 1
|
2天前
|
SQL 人工智能 API
openai停止中国的api服务,但是性能相当的阿里云免费提供迁移
OpenAI暂停中国API服务,阿里云百炼响应迅速,提供免费tokens(2200万)与迁移服务给受影响开发者。Qwen2-72B与GPT-4同列全球第四(HELM MMLU榜)。Qwen-plus调用成本仅GPT-4的1/50。阿里云百炼以开放性著称,兼容LlamaIndex等,支持多种数据源及自定义组件,加速AI应用集成。官网有丰富资源,助力快速上手大模型开发。
|
9天前
|
人工智能 自然语言处理 算法
阿里云PAI大模型评测最佳实践
在大模型时代,模型评测是衡量性能、精选和优化模型的关键环节,对加快AI创新和实践至关重要。PAI大模型评测平台支持多样化的评测场景,如不同基础模型、微调版本和量化版本的对比分析。本文为您介绍针对于不同用户群体及对应数据集类型,如何实现更全面准确且具有针对性的模型评测,从而在AI领域可以更好地取得成就。
|
1天前
|
缓存 Linux Docker
CentOS 7 下安装 Docker 及配置阿里云加速服务
CentOS 7 下安装 Docker 及配置阿里云加速服务
23 0
|
3天前
|
Linux
Centos7同步时间(阿里云NTP服务为例)
Centos7同步时间(阿里云NTP服务为例)
33 0
|
29天前
|
机器学习/深度学习 人工智能 测试技术
阿里云连续三年入围Gartner云AI开发者服务挑战者象限
Gartner正式发布了《云AI开发者服务魔力象限》报告(Magic Quadrant for Cloud AI Developer Services),阿里云成功入选,是唯一一家入围“挑战者”(Challengers)象限的中国厂商,并且保持连续三年入围。

相关产品

  • 文件存储NAS