【问题标题】:Server Selectively Serves Files and 500 Errors on others服务器选择性地为其他人提供文件和 500 错误
【发布时间】: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


【解决方案1】:

在服务器 A 和服务器 B 上的文件夹之间进行了非常彻底的差异之后,在 A 上的图像文件夹中找到了一个 web.config 文件。不确定它是如何到达那里的,因为它不在解决方案中,但删除它似乎成功了。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2017-11-23
    • 1970-01-01
    • 2023-03-14
    • 1970-01-01
    • 1970-01-01
    • 2011-03-14
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多