我在使用ftp连接存储和加载.xml文件的统一的webgl构建中遇到问题。在编辑器中和在本地ftp服务器上(使用Xlight),一切正常。但是,当我构建一个webgl解决方案并尝试保存.xml文件时,出现以下错误:
> Uncaught abort() at Error
at jsStackTrace (http://localhost:8080/Development/WebGL.js:875:12)
at stackTrace (http://localhost:8080/Development/WebGL.js:889:21)
at abort (http://localhost:8080/Development/WebGL.js:3830852:24)
at _pthread_create (http://localhost:8080/Development/WebGL.js:13183:2)
at __ZN6il2cpp2os10ThreadImpl3RunEPFvPvES2_ [il2cpp::os::ThreadImpl::Run(undefined?F?*, void, void*)] (http://localhost:8080/Development/WebGL.js:3596270:50)
at Array.__ZN6il2cpp2os6Thread3RunEPFvPvES2_ [il2cpp::os::Thread::Run(undefined?F?*, void, void*)] (http://localhost:8080/Development/WebGL.js:3746555:7)
at Object.dynCall_iiii (http://localhost:8080/Development/WebGL.js:3807075:39)
at invoke_iiii (http://localhost:8080/Development/WebGL.js:16008:32)
at Array.__ZN6il2cpp6icalls8mscorlib6System9Threading6Thread15Thread_internalEP12Il2CppThreadP14Il2CppDelegate [il2cpp::icalls::mscorlib::System::Threading::Thread::Thread_internal(Il2CppDelegate?**)] (http://localhost:8080/Development/WebGL.js:2708698:6)
at Object.dynCall_iii (http://localhost:8080/Development/WebGL.js:3813716:38)
我绝对不知道这意味着什么或如何远程解决此问题。我对服务器技术的兴趣并不是一直以来都很高,因此在此方面的一些帮助将不胜感激。
这是我当前正在使用的xml上传代码:
FtpWebRequest request = (FtpWebRequest)WebRequest.Create("ftp://localhost/construct.xml");
request.Method = WebRequestMethods.Ftp.UploadFile;
request.Credentials = new NetworkCredential("name", "password");
string xml = xmlDoc.OuterXml;
byte[] bytes = Encoding.UTF8.GetBytes(xml);
Stream requestStream = request.GetRequestStream();
requestStream.Write(bytes, 0, bytes.Length);
requestStream.Close();
FtpWebResponse response = (FtpWebResponse)request.GetResponse();
response.Close();
如果还有其他遗漏,请告诉我。提前致谢!
由于WebRequest依赖线程,因此无法将WebRequest与Unity HTML5导出的项目一起使用。Unity的“导出到HTML5”选项尚不支持线程。堆栈跟踪的关键部分是这样的:
at _pthread_create (http://localhost:8080/Development/WebGL.js:13183:2)
emscripten均未实现任何pthread API方法。在将来的某个时候,我们可能会通过各种浏览器为JavaScript提供线程支持,但现在不可用。
请注意,即使在选择了WebGL平台的情况下,此操作也可以在编辑器中使用,因为Unity并不像Web Player那样限制WebGL平台的.NET配置文件。我们正在考虑使用配置文件为诸如WebGL之类的平台提供更早的错误信息,但我们尚未实现它。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句