【问题标题】:Windows Server 2016 IIS hosted website failed to load dll on a remote file share on AlibabaCloudWindows Server 2016 IIS 托管网站无法在阿里云上的远程文件共享上加载 dll
【发布时间】:2020-07-08 03:23:00
【问题描述】:

我在 IIS 上遇到了一个问题,它困扰了我很多天。在网上搜索了一遍之后,我仍然找不到正确的答案,所以是时候在 StackOverflow 上发帖寻求帮助了。

我在阿里云上创建了一个 Windows Server 2016 虚拟机,在阿里云上创建了一个 SMB 文件共享。然后我按照这条指令 (https://github.com/AlibabaCloudDocs/nas/blob/master/intl.en-US/Best%20Practices/Use%20Windows%20IIS%20and%20NAS%20to%20provide%20Web%20and%20FTP%20services.md) 将我的网站放在文件共享上并将其加载到 IIS。问题是此设置适用于 Windows Server 2012 R2 或更低版本,但是在 Windows Server 2016 上显示 dll 加载失败。错误如下所示:

Dll load failure: 0x8007003a

我尝试了一堆设置

<runtime> <loadFromRemoteSources enabled="true"/> </runtime>

并在线搜索,但没有任何技巧有效。我还尝试使用进程监视器检查 w3wp.exe 的详细信息,并在 2012 年和 2016 年之间得到了这种差异:

Windows Server 2012's w3wp.exe gives CreateFile: Success

Windows Server 2016's w3wp.exe gives CreateFile: Invalid Network Response

2012 年(左)和 2016 年(右)的堆栈比较: Left: 2012, Success; Right: 2016, Invalid Network Response

另一个有趣的事情是 Windows Server 2016 并没有真正为这个 dll 打开请求发送任何 SMB 数据包。

我担心这是 Windows Server 2016 内核的错误。

写完上面所有的话,问题就很清楚了:有谁知道到底发生了什么,有没有办法在Windows Server 2016 for IIS上加载远程dll?

【问题讨论】:

  • 如果您怀疑这是一个错误,请证明它。由于您可以访问 Windows Server,因此请在重现问题时捕获 SMB 网络数据包并分析它们以获取支持您猜测的证据。否则,这只是您的猜测。
  • 请看这个话题:stackoverflow.com/questions/54245000/…。应该是 Windows Server 2016 的问题。

标签: iis dll smb windows-server-2016 alibaba-cloud


【解决方案1】:
  • 检查 IIS 服务器中的 root 权限
  • 降低安全级别权限

【讨论】:

    猜你喜欢
    • 2018-03-06
    • 2014-03-08
    • 1970-01-01
    • 2021-10-13
    • 1970-01-01
    • 2017-08-07
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多