我有一个c#应用程序作为
Windows服务运行.此应用程序使用开源微型http服务器进行URL通信.开发了一个flext应用程序,用于使用get / post方法通过c#应用程序更新和选择sqlite数据库中的数据.
我有一个名为https:/ domainname:portnumber / folder / tree / 200的网址
它在c#服务的帮助下从数据库中读取数据,并以xml格式向客户端返回大量数据.
有时当这个网址被称为totral c#windows服务正在重新启动.
然后需要刷新flext应用程序再次启动它.
安装Windows服务的服务器防火墙已关闭,机器也可以访问.
当我检查这个url调用后发现的日志时,服务器重新启动.此外,当我检查提琴手的流量时,我收到以下错误:
HTTP/1.1 502 fiddler - Connection Failed Content-Type: text/html; charset=UTF-8 Connection: close Timestamp: 10:18:52.685 [fiddler] The socket connection to (domainname) Failed. <br />ErrorCode: 10061.
public string Tree() { try { string langstr = ""; if (Request.QueryString["lang"] != null && !string.IsNullOrEmpty(Request.QueryString["lang"].Value)) { langstr = Request.QueryString["lang"].Value.ToString(); } else { ThingzDatabase db = SessionDatabase; langstr = db.DefaultLanguage; db = null; } folderTree = new FolderTree(Convert.ToInt32(Id),true,SessionDatabase,langstr); XmlDocument doc = folderTree.XML; Response.ContentType = ContentType.Xml; langstr = null; folderTree.db2 = null; folderTree = null; //GC.Collect(); return doc.InnerXml; } catch (Exception e) { TouchServer.Log(Logger.MessageType.Error,1,e.ToString()); return "Get folder tree Failed,reason:" + e.Message; } }
public sqliteDataReader Executesql(String sqlExpr) { if (conn.State != ConnectionState.Open Open(DataFile); using (sqliteCommand cmd = conn.CreateCommand()) { cmd.CommandText = sqlExpr + ";PRAGMA read_uncommitted = 1;"; cmd.CommandType = CommandType.Text; return cmd.ExecuteReader(); } }
解决方法
什么是返回字符串的大小?您可以将其写入文件以验证返回字符串的长度.
如果长度超过一定限制,Web服务可能会出现问题.
以下链接讨论了类似的问题.
http://social.msdn.microsoft.com/forums/en-US/wcf/thread/58e420e9-43a3-4119-b541-d18158038e36/
如果您没有处理异常,服务可能会崩溃.
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。