这是一个奇怪的问题,我现在一直在努力寻找解决方案。
我创建了一个简单的Web服务,用于查询本地MYSQL数据库并返回客户端的结果。当我在浏览器上使用它时,它可以完美地工作。我使用wsdl创建了一个c#脚本,以在Unity 3D中使用此服务。我第一次在编辑器中运行游戏它工作正常,但第二次我尝试运行它时编辑器冻结超时时间然后它返回WebException:请求超时异常。
我尝试使用mono 4,mono 2和.NET 4创建wsdl文件。我尝试使用.cs文件并使用dmcs创建一个dll。我尝试在使用它之后处理代理类,我尝试在使用块中调用它。
此时我问我的一位同事尝试使用该代码,并且每次都在计算机上运行!我尝试使用笔记本电脑(Windows 10)并获得与桌面(也是Windows 10)相同的结果。我的同事正在使用Windows 8.1,因此我使用Windows 8.1启动了我的桌面,并重新安装了所有相关软件(wamp,VS2015,Unity3D和VSTools)也没有任何运气。我尝试在Visual Studio中重建源代码,清理解决方案,擦除Unity 3D缓存。我尝试使用远程服务器,而不是使用wamp作为mysql数据库。我还在线托管了Web服务,而不是本地使用IIS 10 express。
对于我在VS2015中创建并清空Web应用程序的Web服务,然后添加了我需要的数据结构并安装了MySQL Connector来查询数据库。对于Unity3D项目,我使用了前面提到的wsdl代理类。 .NET可比性设置为2.0(无子集)。 Systems.Web和Systems.Web.Services位于项目的Plugins文件夹中。
我对于我能做些什么来完成这项工作没有更多的想法。任何建议将不胜感激。对我来说最奇怪的是这件事适用于我的同事电脑!我明白为什么!我们使用相同的防病毒,防火墙,操作系统,VS版本,Unity3d版本,MySQL连接器,单声道,一切!
编辑:忘记提及我还试图关闭防病毒软件和防火墙。EDIT2:完整的例外:
WebException: The request timed out
System.Net.HttpWebRequest.EndGetResponse (IAsyncResult asyncResult)
System.Net.HttpWebRequest.GetResponse ()
System.Web.Services.Protocols.WebClientProtocol.GetWebResponse (System.Net.WebRequest request)