我需要一些指导来解决本地 IIS 服务器上托管的网站无法在使用 Chrome 和 Safari 浏览器的较新 iPhone 型号(特别是 iPhone 12 Pro)上正确加载的问题。该网站最初会显示空白页面几秒钟,然后显示错误消息(如所提供的图像所示)。较旧的 iPhone 或任何其他可以通过各种浏览器正常访问该网站的设备(计算机、Android 手机)不会出现此问题。我假设存在一些 DNS 问题,该手机可以访问任何其他网站...
服务器日志没有显示任何错误,并且 Websocket 运行正常。我们的应用程序是使用 .NET 8.0 开发的,并通过 IIS 中的 ASP.NET Core Runtime 8.0.10 捆绑包进行托管。我的 Visual Studio 已更新到版本 17.11.5。
由于我对 iPhone 的使用经验很少,并且对 Blazor 的熟悉程度有限,因此我正在寻找初始步骤或策略来开始诊断此问题。我很快就能从 IT 部门使用 iPhone 来进行测试,但如果能提供任何初步指导或见解来进行故障排除,我们将不胜感激。所有设备都连接到同一 WiFi 网络。
对于服务器部分,请使用IIS“失败请求跟踪模块”。定义跟踪规则时,在“定义跟踪条件”上,仅应输入“所用时间(秒)”字段,并有足够的时间来生成您遇到的条件。该模块将记录持续 x 秒或更长时间的请求。你可能会为前。如果 5 秒或更长时间后出现上述错误,请输入 5 sec。然后重新生成错误以填充磁盘上的跟踪日志。默认情况下,C:\inetpub\logs\FailedReqLogFiles 是充满日志文件的目录,规则捕获的每个请求都有一个文件。您可以在以下位置找到有关读取跟踪日志的更多信息:
您可能会发现 IIS 服务器上的哪个模块使应用程序等待。
从客户端来看,另一个有用的工具是curl工具或invoke-webrequest(powershell)cmdlet。它们是类似的工具,您可以使用 Chrome、FireFox、InternetExplorer、Opera 和 Safari 等用户代理发送 Web 请求,或者使用curlcurl -A“Agent 007”https://example.com(参考:curl) .se 手册页)作为用户代理,您可以输入应用程序的相关标头信息。使用curl工具的跟踪选项,您可以获得有关发送/接收的数据包的详细信息。
我怀疑与 TLS 版本相关的内容,例如较新的 IOS 将发送服务器不接受的 TLS 1.3 请求。在curl跟踪中您可能会找到这些详细信息,这将向您显示请求是否在TLS握手过程中一开始就被破坏了。