我遇到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时,问题会暂时缓解。
有什么想法?我尝试按照(相当古老的)知识库文章中的说明进行操作,但这没有帮助。
编辑:我应该注意这是一个生产系统
答案 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框中:
FCNMode
并使用值1来禁用。FCNMode
更改/添加值1以禁用。MaxCmds
参数更改/添加值> 50,最大值65535 - 我们尝试的值一直到65535。MaxMpxCt
更改/添加值> 50,最多65535 - 在IIS框中,您需要将其配置为与MaxCmds
相同。在文件服务器上:
MaxWorkItems
更改/添加值> 4096,最大65535 - 这最容易通过IIS框上的IIS框* MaxCmds值计算 - 或者最大值为65535。MaxMpxCt
更改/添加值> 50,max 65535 - 我的印象是,这是在客户端和服务器之间协商的,两者的较低值是应用的。我们尝试了最多的各种值当我们使用各种新选项尝试/失败时,我将继续添加此答案。还有一件事我应该提一下 - 如果你有奇怪的片状UNC路径解析错误:“指定的网络名称不再可用或你没有权限” - 暂时尝试禁用巨型MTU和你的NIC有任何卸载选项(在IIS上)和文件服务器框),以查看是否有帮助(它解决了HP网卡的问题)。
<强>更新强> 我们在文件服务器(Linux NAS)上启用了SMB 2,并且我们已经对IIS框进行了注册表更改,我们终于停止了接收可怕的网络BIOS限制错误。