访问虚拟文件夹时IIS 7 500错误

时间:2012-03-16 15:49:34

标签: iis iis-7 windows-server-2008

我遇到IIS问题,尝试访问虚拟文件夹路径。

我的应用程序(.Net 3.5 SP1,MVC 1.0)生成报告结果文件,这些文件通过基于Unix的vfiler上的虚拟路径着陆(我认为目标是NetApp设备)。当我的用户尝试通过IIS(在WinServ 2k8 R2 64位上托管)通过http请求访问报告时,他们会收到以下500错误:

Log Name:      Application
Source:        ASP.NET 2.0.50727.0
Date:          3/14/2012 1:07:20 PM
Event ID:      1185
Task Category: File Monitoring
Level:         Error
Keywords:      Classic
User:          N/A
Computer:      %APPLICATION_SERVER%
Description:
Failed to start monitoring changes to '%PATH_TO_FILE_SHARE%' because the network BIOS command limit has been reached. For more information on this error, please refer to Microsoft knowledge base article 810886. Hosting on a UNC share is not supported for the Windows XP Platform.

我在这种环境中没有很多可见性(我是应用程序的供应商)但问题似乎是累积的,并且只有当IIS代理连接时才会出现问题。如果我手动输入客户端计算机上命令/运行窗口的路径,我就能访问该文件 - 这使我相信它不是基于权限的。我也可以在IIS管理器中访问它。当我执行IISRESET时,问题会暂时缓解。

有什么想法?我尝试按照(相当古老的)知识库文章中的说明进行操作,但这没有帮助。

编辑:我应该注意这是一个生产系统

2 个答案:

答案 0 :(得分:1)

作为参考,以下文章允许我们解决此问题:http://blogs.msdn.com/b/carloc/archive/2009/09/06/hosting-on-a-unc-share-is-not-supported-for-the-windows-xp-platform.aspx

我们将HKLM \ Software \ Microsoft \ ASP.NET \ FCNMode值设置为“2”,这可以将我们的Multiplex连接降低到可管理的值。微软的官方建议是增加SAN上的Multiplex连接限制,但这对我们来说是不可行的,因为它需要压低SAN上托管的所有CIFS共享。

希望这有助于将来。

答案 1 :(得分:1)

这是我在使用IIS托管时遇到的最严重的问题之一。

以下是我们尝试过的所有内容,但无济于事 - 我会为您发布这些内容,以防它们可能适用于您的情况:

在IIS框中

  1. 在HKLM \ Software \ Microsoft \ ASP.NETchange /添加DWORD FCNMode并使用值1来禁用。
  2. 在HKLM \ SOFTWARE \ Wow6432Node \ Microsoft \ ASP.NET中的DWORD FCNMode更改/添加值1以禁用。
  3. 在HKLM \ SYSTEM \ CurrentControlSet \ Services \ lanmanworkstation \中的DWORD MaxCmds参数更改/添加值> 50,最大值65535 - 我们尝试的值一直到65535。
  4. HKLM \ System \ CurrentControlSet \ Services \ LanmanServer \ Parameters中的DWORD MaxMpxCt更改/添加值> 50,最多65535 - 在IIS框中,您需要将其配置为与MaxCmds相同。
  5. 将应用程序池更改为“无管理代码”
  6. 阻止IIS检查子目录中的web.config文件 - 转到IIS管理器中的顶级服务器 - >配置编辑器 - > “system.applicationHost / sites”部分 - >打开收藏 - >在每个站点内,将virtualDirectoryDe​​faults-> allowSubDirConfig更改为False - >关闭集合编辑器,然后单击“应用”。
  7. 在文件服务器上:

    1. HKLM \ System \ CurrentControlSet \ Services \ LanmanServer \ Parameters中的DWORD MaxWorkItems更改/添加值> 4096,最大65535 - 这最容易通过IIS框上的IIS框* MaxCmds值计算 - 或者最大值为65535。
    2. HKLM \ System \ CurrentControlSet \ Services \ LanmanServer \ Parameters中的DWORD MaxMpxCt更改/添加值> 50,max 65535 - 我的印象是,这是在客户端和服务器之间协商的,两者的较低值是应用的。我们尝试了最多的各种值
    3. 当我们使用各种新选项尝试/失败时,我将继续添加此答案。还有一件事我应该提一下 - 如果你有奇怪的片状UNC路径解析错误:“指定的网络名称不再可用或你没有权限” - 暂时尝试禁用巨型MTU和你的NIC有任何卸载选项(在IIS上)和文件服务器框),以查看是否有帮助(它解决了HP网卡的问题)。

      <强>更新 我们在文件服务器(Linux NAS)上启用了SMB 2,并且我们已经对IIS框进行了注册表更改,我们终于停止了接收可怕的网络BIOS限制错误。