簡體   English   中英

多客戶端連接時C#服務器程序掛起

[英]C# server program hangs when multi clients connects

問候!

我有一個ac#控制台應用程序,它已作為Windows服務安裝在實時計算機中。 此應用程序充當服務器,並使用http和https服務。 為了與客戶端URLS的Tiny HTTP Server通信,使用開源。 有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;

                             --------

諸如http:\\ domainname:port \\ item \\ detail \\ temid之類的item / detail url,一個客戶端調用了將近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)應用程序也嘗試從服務器獲取數據。此url每隔5分鍾從客戶端應用程序一次調用一次。

可能是什么問題,我該如何解決此服務器問題。 是對sqlite db的讀取或寫入問題。 請幫我提出寶貴的建議。

關於Sangeetha

解決方案是將ASP.NET Web角色/成員功能與該DB CRUD操作分開:后者應實現自己的自治安全模型,或使用角色/成員類的輸入。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM