我有一个SOAP服务器/客户应用程序以德尔斐XE书写,在一段时间内运作良好,直到一个用户在Windows 7x64的代理/防火墙后面运行。应用程序发送和接收请求中的 TSOAPAttachment 对象。
问题:
- Once the first request from this user is received and processed, the server could not process any request (from any user) successfully coming after this.
- The server still response to the request, but the SOAPAttachment of the request seems corrupted after the first one from this user, that s why it couldn t process the request successfully.
- After putting may debug logs to the server, I noticed the TSOAPAttachment.SourceStream in the request s parameter become inaccessible (or empty), and TSOAPAttachment.CacheFile also empty. Therefore whenever trying to use the SourceStream, it will return Access Violation error.
- Further investigation found that the BorlandSoapAttachment(n) file generated in the temp folder by the first request still exist and locked (which should be deleted when a request is completed normally), and BorlandSoapAttachment(n+1) files of the following request are piling up.
- The SOAP server will work again after restarting IIS or recycle the application pool.
- It is quite certain that it is caused by the proxy or the user’s networks because when the same machine runs outside this networks, it will work fine.
- To add more mystery to the problem, running the application on WinXP behind the same proxy have no problem AT ALL!
任何帮助或建议都十分感谢,因为我们在这种局势下已经坚持了一段时间。
提前多谢了