我有一個C#應用程序作爲一個Windows服務運行。此應用程序使用開放源代碼微型http服務器進行URL通信。開發了一個使用get/post方法通過c#應用程序更新和選擇來自sqlite數據庫的數據的應用程序。重新啓動一個URL調用的C#窗口服務
我有一個名爲https:/ domainname:portnumber /文件夾/樹/ 200 它從數據庫讀取數據藉助於c#服務,並以xml格式向客戶端返回大量數據。
有些時候,這個URL被調用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;
}
}
執行從SQLite數據庫下面的代碼查詢被使用
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();
}
}
你的問題是什麼?防止您的Windows服務重新啓動,或者您嘗試重新啓動Windows服務? – terry