[英]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.