1

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

我在阿里云上创建了一个 Windows Server 2016 VM,在阿里云上创建了一个 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加载失败:0x8007003a

我尝试了一堆设置

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

并在网上搜索,但没有一个技巧有效。我还尝试使用 Process Monitor 来检查 w3wp.exe 的详细信息,并在 2012 年和 2016 年之间得到了这种差异:

Windows Server 2012 的 w3wp.exe 提供 CreateFile: Success

Windows Server 2016 的 w3wp.exe 提供 CreateFile: Invalid Network Response

2012 年(左)和 2016 年(右)的堆栈比较: 左:2012,成功;右图:2016,无效的网络响应

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

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

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

4

1 回答 1

0
  • 检查 IIS 服务器中的 root 权限
  • 降低安全级别权限
于 2020-07-07T19:23:00.797 回答