问候!
我有 ac# 控制台应用程序,它作为 Windows 服务安装在 live 机器中。此应用程序充当服务器并使用 http 和 https 服务。为了与客户端 URLS 的微型 HTTP 服务器进行通信,使用了开源。有 90 个客户端使用使用 flex 开发的客户端程序从服务器访问数据。这个 flex 应用程序连接到服务器,如下所示,
登录网址
try
{
if(!Request.Uri.AbsoluteUri.Contains("https"))
System.Threading.Monitor.Enter(Lock);
if (Request.Method == Method.Post)
{
SiteSession siteSession = _login( Request.Form["SiteName"].Value.Trim(),
Request.Form["UserName"].Value.Trim(),
Request.Form["Password"].Value.Trim());
if (siteSession != null)
{
if (siteSession.authenticated)
{
User currentUser = siteSession.thingzDatabase.currentUser;
_database = siteSession.thingzDatabase;
--------
item/detail urls like http:\domainname:port\item\detail\temid 一个客户端调用近 70 个 url 并从服务器数据库获取数据。总共 90 多个客户端
当项目/列表被调用时,下面的代码被执行。
if (Id == "")
{
//System.Threading.Monitor.Enter(_locker);
System.Threading.Monitor.Enter(Lock);
try
{
if (Request.AcceptTypes == null)
{
TypeController.session_id = Request.QueryString["sessionid"].Value;
//queue.
Enqueue(Request.QueryString["sessionid"].Value);
//string que = "";
////do
////{
//que = queue.Dequeue();
//TypeController.session_id = que;
langStr = SessionDatabase.Language;
filter = new AllThingzFilter(SessionDatabase, parameters, langStr);
TypeController.session_id = null;
filter.Execute();
--------
有一位管理员使用具有不同端口号的安全 https 服务将数据更新/写入服务器数据库。相同的登录 url 调用和其他 post 和 get 方法将在管理员登录中调用。
服务器中使用的数据库是 sqlite。现在让我解释一下我的问题,我收到客户的投诉说服务器挂起,管理员无法登录。或者,如果在对数据库执行任何更新后登录无法上传任何图像,则服务器会挂起。所以需要再次重启windows服务。
当管理员对服务器数据库执行 CRUD 操作时。同时,客户端应用程序(flex)应用程序也尝试从服务器获取数据。客户端应用程序每 5 分钟调用一次该 URL。
可能是什么问题,我该如何解决这个服务器手。它是sqlite db的读取还是写入问题。请帮助我提出宝贵的建议。
问候桑吉塔