【发布时间】:2016-07-01 18:29:44
【问题描述】:
所以我有 3 个服务器。我们称它们为 A、B 和 C
A 和 B 托管一个网站并进行负载平衡。 C 是一个文件服务器,除了提供各种类型的文件之外什么都不做,但为此我们将使用图像。 C 没有运行 IIS。
当我在服务器 B 上测试时,图像按预期提供。
当我在服务器 A 上测试时,页面加载缓慢,并收到以下错误消息:
GET http://domainC/folder/imageA.png 500 (Internal Server Error)
如果我转到“domainC/folder/imageA.png”,网页会显示一个“友好”错误,上面写着:
500 - Internal server error. There is a problem with the resource you are looking for, and it cannot be displayed.
我查看了 A 和 C 上的事件查看器。两台机器上都没有错误。
更复杂的是,我可以转到“domainC/folder/imageB.png”,它会按预期显示图像。
我比较了 A 和 B 上站点的应用程序池和设置,据我所知,一切都是相同的。
我之前确实在 A 上看到过这个:
未能开始监视对“\C\folder”的更改。
在 System.Web.FileChangesMonitor.FindDirectoryMonitor(字符串目录,布尔 addIfNotFound,布尔 throwOnError) 在 System.Web.FileChangesMonitor.StartMonitoringFile(字符串别名,FileChangeEventHandler 回调)
在 System.Web.Configuration.WebConfigurationHost.StartMonitoringStreamForChanges(String streamName, StreamChangeCallback 回调)
在 System.Configuration.BaseConfigurationRecord.MonitorStream(String configKey, String configSource, String streamname)
在 System.Configuration.BaseConfigurationRecord.InitConfigFromFile()
另外,在我机器上的 hosts 文件中,我有以下行:
xx.xx.xx.xx A.com C.com
由于 A 的虚拟目录指向 C 上的物理位置,这应该会导致成功拉取,并且在某些图像上也是如此。当我对 B 执行相同操作时,它可以正常工作。
在这一点上,我完全不知道会发生什么。
【问题讨论】:
-
您需要暂时configure IIS to display error details,这样您才能看到 500 Internal Server Error 背后的详细信息。您还可能会在 Windows 事件日志中发现一些错误。
-
可能是一些访问问题。在 web.config 中添加
<customerror mode='off'>怎么样 -
在服务器 A 上,
已设置,而 C 没有 web.config :/ -
也许this 会有所帮助
-
@WiktorZychla 我认为他的意思是他试图提供的所有文件都在一个目录中,服务器 A 可以很好地提取它们,但服务器 B 不能
标签: c# .net asp.net-mvc iis