超时:尝试访问/调试Azure函数[Unity] [PlayFab]的LocalHost时出现WebException

问题描述

我正在尝试与Unity一起在本地调试Azure Function脚本,但每次都会遇到超时错误

在这里有几件事情,我不确定是哪一个真正引起了问题...这可能是Windows上的一种设置,与其中一种软件相反。

我正在Unity 2019.4中构建并使用PlayFab,并且能够使用Azure Functions。当我尝试从Azure服务器执行脚本时,它可以正常运行。但是,当我尝试通过本地调试运行它时,我得到了WebException: The request timed out System.Net.HttpWebRequest.GetRequestStream(请参见下面的完整错误)。

这是我要进行的设置:

  • 将PlayFab设置为本地调试(通过VS代码扩展)(并确认json文件位于temp文件夹中)
  • 通过Here
  • 安装Azure Functions核心工具
  • 从VS Code启动Azure Functions调试(终端输出显示localhost正在正确运行)

启动AzFunc调试时,超时错误引用了VS代码终端中确认的正确地址http://localhost:7071/api/CloudScript/ExecuteFunction

当我将项目克隆到MacBook Pro时,所有操作都可以在本地调试中顺利进行。

因此,因此,我尝试检查以确保未通过PowerShell:netsh firewall show state阻止端口,并告诉Windows Defender不要阻止Unity或代码中的任何内容。当我在PowerShell / CMD中运行Netstat -ab时,我得到了:

 Can not obtain ownership information
  TCP    0.0.0.0:7071           DESKTOP-COmpuTER:0      LISTENING
 [func.exe]
  TCP    0.0.0.0:7680           DESKTOP-COmpuTER:0      LISTENING

我不知道这是问题还是正常...

我什至不知道还要检查什么。这个问题超出了我。如果有人知道解决方案,或者可以指出正确的方向,我将不胜感激!


下面是我在本地调试时通过PlayFab执行Azure Function脚本时来自Unity日志的两个错误

WebException: The request timed out
System.Net.HttpWebRequest.GetRequestStream () (at <14e3453b740b4bd690e8d4e5a013a715>:0)
PlayFab.Internal.PlayFabWebRequest.Post (PlayFab.Internal.CallRequestContainer reqContainer) (at Assets/PlayFabSDK/Shared/Internal/PlayFabHttp/PlayFabWebRequest.cs:319)
Rethrow as WebException: Timeout: WebException making http request to: http://localhost:7071/api/CloudScript/ExecuteFunction
UnityEngine.Debug:LogException(Exception)
PlayFab.Internal.PlayFabWebRequest:Post(CallRequestContainer) (at Assets/PlayFabSDK/Shared/Internal/PlayFabHttp/PlayFabWebRequest.cs:332)
PlayFab.Internal.PlayFabWebRequest:WorkerThreadMainLoop() (at Assets/PlayFabSDK/Shared/Internal/PlayFabHttp/PlayFabWebRequest.cs:252)
System.Threading.ThreadHelper:ThreadStart()

Timeout: WebException making http request to: http://localhost:7071/api/CloudScript/ExecuteFunction
UnityEngine.Debug:Log(Object)
DemoScript:onPlayFabError(PlayFabError) (at Assets/PlayFabPartySDK/Examples/DemoScript.cs:264)
PlayFab.Internal.<>c__displayClass30_0:<QueueRequestError>b__0() (at Assets/PlayFabSDK/Shared/Internal/PlayFabHttp/PlayFabWebRequest.cs:395)
PlayFab.Internal.PlayFabWebRequest:Update() (at Assets/PlayFabSDK/Shared/Internal/PlayFabHttp/PlayFabWebRequest.cs:480)
PlayFab.Internal.PlayFabHttp:Update() (at Assets/PlayFabSDK/Shared/Internal/PlayFabHttp/PlayFabHTTP.cs:364)

解决方法

好的,TLDR:问题的答案是并非所有内容都已更新。因此,如果遇到相同的问题,请更新所有内容

在我的案例中,更具体地讲,是Unity包管理器中的“ Visual Studio代码编辑器”资产。

我只是想把这个扔出去,以防将来有人遇到这样的问题。可能需要升级的东西可能并不相同,但是请搜索所有涉及的内容并确保已更新。不仅是大而明显的事情(例如Unity或您的IDE)。值得庆幸的是,在这种情况下,此更新开始引起其他问题,在尝试解决这些问题后,我遇到了麻烦。

祝你好运,未来的白痴!