EEPNetServer經常會發現很多User還在線上,而且越累積越多,是否可以定時清除離線者?
在EEPNetServer的"Server Config"中,有一項"Max Time Out",可以設定多少Hours,預設為0,代表永不清除,如果設為12,代表12小時內如果這個User沒有再持續使用,這個User會被自動清除掉。此目的是為了Web的User經常會跳轉到別的網頁,並沒有對EEPWebClient進行Logout的動作,造成EEPNetServer會越來越多User都沒有下線的情況下自動將其清除。
EEPNetServer 跟 EEPServerLoader 有何不同?
EEPServerLoader只是一個簡單的監聽小程式,用途是在EEPNetClient或EEPManager開啟時,來偵測EEPNEtServer有沒有開啟,如果沒有開啟,則會自動將EEPNetServer啟動起來。另外EENServerLoader可以做成一個啟動的Service,這樣在Server的機器上,可以不用登陸Windows就能監聽與啟動EEPNetServer的主程式。
執行了EEPNetServer發生了記憶體錯誤,會不會與MOD32防毒衝突?
這個問題應該是NOD32引起的,只要把 eepnetserver 設為排除即可,可先打開NOD控制中心,click IMON 這個項目, 再按下”設定”,並點選”其它”這個頁籤, 在排除的設定中,按下”編輯”,如圖將EEPNetServer,EEPNetClient,EEPManager等EXE加入排除的程式中即可
如果Master Server有異常時,使用者可以直接透過連Slave Server來登入系統嗎?
Master Server是分配連接的,所以當Master Server有異常時是無法連接Slave Server的。如果有必要,在Client端的config中是可以設定第二組Master Server的IP Address,但這樣必須有兩台Master Server。
EEP.Net Server,Master及Slave Server的問題:負載平衡與備源兩種架構是無法同時存在的嗎?
SP3以後的版本是可以的,SP3有增加備用Server的設定,如果原來的Master沒有連上,Client會直接連到一個設定好的備用Server上,直接修改檔EEPNetClient.Config(如果修改App.Config則需要Rebuild),設定的方法如圖:
請問如何自動將User的DLL一同發佈到Server EEPNetServer機器上?
開發人員可以通過EEPManager登錄到目的Server,然後將本地開發的dll直接上傳,在EEPManager的『Package Manager』中直接將檔從Local拖至Remote即可。如果您想統一控管,假設A是您最終要發佈EEPNetServer的機器(您公司最後上線使用的EEPNetServer機器),其實每個開發人員都可以直接通過EEPManager上傳到A,如果您覺得這樣不妥,您可以讓每個開發人員將自己開發的dll直接上傳到您自己的機器B中,然後由您統一再發佈到A上去。
LoadBalance負載平衡SlaveServer設定,提示can not find Login service on 192.168.168.35:8989
請確認192.168.168.35這台機器上的APServer已經打開,並且埠8989有開放。
EEPNETSERVER運行一段時間就會自動掉線
請檢查是否有安裝NOD32防毒軟件?如果有,請參考一下這個檔:http://www.infolight.com/download/file/nod32notes.doc。
多人登入時,被分配到SlaveServer者,會顯示登入在那兒?
被分配到SlaveServer的User會在SlaveServer的EEPNetServer上顯示,就好像User直接登錄到上面一樣。
能否同時在一台Server機器上發佈兩個專案呢?
EEPNetServer不分專案,可以多個專案共用。
EEPNetClient不分專案,可以多個專案共用。
Web部分比較特殊,多個專案必須都統一放在EEPWebClient路徑下同時發佈,如果需要單獨發佈,則不能發佈在同一台IIS上。
用 wizard 建立一個新的 solution,也在 solution define 新增了,但是發現在 client 端開啟Login後,也還是只能選擇 solution1,新定義的 solution 並沒有出現供選擇。
在EEPManager中定義好solution後,要按一下『Save』,這樣就可以了。但有個地方需要說明一下。EEPNetClient登陸的時候,下拉清單中的Solution是從SystemTable中取得的,所以Solution的定義也要在這個DB中,定義在MenuItemType這個Table中。
在別台機器中,要用Manager.exe或EEPNetClient連到Server無反應,傳回一個錯誤: (407) 必須 Proxy 驗證,這是甚麼問題?
這是因為你的網路中設定了Proxy的代理,解決方法:是在IE Browser中選-工具-網際網絡-連線-區域網絡設定中 Proxy伺服器不能選定即可。
EEPManager Menu Utility無法顯示第三層内容?
這是了提高Menu Utility打開的速度,所以第三層及之後的各層都是透過Double Click上層的Icon,才進行展開顯示出來的,在RunTime的User所操作的Menu也是這樣的。
EEPManager 中Reference Value設定與作用為何?
EEPManager中有一個D.D.設定(資料字典),在Wizard中會引用此D.D.來自動處理有關各資料表各欄位的屬性,如果你設定的欄位RefValBox,那就會用到Referance Value的設定,也就是當你在Wizard選擇Master或Detail欄位時,右方每個欄位都有一個"..."的button,按進去可以對每個欄位再進行更細膩的設定,RefVal就是在選擇為RefValBox時使用,他可以事先定義好該RefVal的Select語句,要使用哪些欄位,DisplayMember與ValueMember欄位為誰等等資訊,這樣系統就會依照這份設定來自動產生RefVal(或WebRefVal)的元件預設屬性。
在EEP的Groups資料表中,EveryOne是否為固定的群組?
是的,EveryOne是個固定且特殊的權組,一般來說,EveryOne就代表所有User,是系統內定的群組,代號為”00”,這個特殊群組你可以不必因為增加一個User就須到EveryOne這個Groups中來定義新的User帳號,因為系統本身就會識別EveryOne就是包含所有的Users,可以不必另外定義。
EEPManager的Menu Utility在設定Menu時,可否有多國語言的設定。
在EEPManager/Security Manager/Menu Utility中左上角Solution下方有一個語言別的ComboBox可以選擇,選擇後就可以在Caption中輸入不同語言別的功能項目名稱。
如果WebDataSource是JOIN過來, ToExcel後,標題無法在DD中取得?
欄位的title是從DD中取得,目前Join的欄位無法取得DD,但可以將left Join欄位用AS命名,在原Table的D.D.可以定義此虛擬欄位。
MenuTable的ItemParam可否傳一個以上的參數
ItemParam是以string格式傳遞的,所以你可以自己選擇,比如多個間用逗號或者分號區別,讀取的時候再自行分隔。
solution define 要怎麼刪掉 solution?
跟一般的Grid資料的操作方法一樣,在Grid中選中該筆Solution,然後按Delete鍵,再按Save。另外,menu的資料涉及很多其他的table,比如安全管理等等,所以需要自行考慮後,手動下sql語句刪除.相關聯的資料表如下:
Solution(Table為MenuItemType)影響到:
MenuTable(功能項目清單)
MenuCheckLog(記錄版本資訊)
------------------------------
但MenuTable影響到下列Table:
UserMenus(User對Menu的權限)
GroupMenus(Group對Menu的權限)
MenuTableControl(頁面Security項目)
UserMenuControl(User對頁面Security項目權限)
GroupMenuControl(Group對頁面Security項目權限)
EEPManager進不去, 錯誤訊息:User Not Found?
1. 確認USERS中是否存在該用戶。
2. 檢查該用戶AUTOLOGIN欄位的值是否設定為S,否則這個user是沒有權限使用EEPManager。
在FORM上添加了InfoSecurity,依User設定權限,有權限的用戶打開FORM仍提示沒有新增、刪除、修改得許可權,請問我該檢查哪些地方?
1.EEPManager裏設定許可權的時候,有區分User / Group,請檢查是否設置正確
2.InfoSecurity.Priority有區分User或Group的設定,請檢查是否設置為User
3.InfoSecurity.RelaxMode可設定是否為鬆散模式。
運行InitEEP.exe成功且EEPNetServer.exe(聯接資料表成功),但打開EEPMaganer.exe時不正常且反應很慢?
一般情況下,這是因為EEPNetServer的埠被佔用了,所以連不上Server打開EEPManager工程下的EEPManager.exe.config,檢查其中對應的Server的IP與埠號的設置是否正確,如果正確的話,可以通過EEPNetClient來連接檢視Server是否工作,如果仍然連接不上,說明是Server的問題,可以通過運行->cmd 裏鍵入netstat -o -a來檢視Server的埠(8989)有沒有被別的應用所佔用。
執行EEPManager.exe無法登錄,出現「無法連接至遠端伺服器」,要檢查那些設定?
1. 遠端A/P Server是否開?,開?是否有問題。
2. 如果運行EEPNetClient.exe可以,那可能是EEPManager.exe的問題,檢查EEPManager.exe.config檔,看裏面的IP是否指向正確。
Menu Utility 順序可以改變嗎?
Menu順序有個屬性Sequence可以設定。
建立EEPManager的Menu Utility時影響到那些Table?
1. 菜單項內容放在MENUTABLE中。
2. User對Menu的使用權限是放置在USERMENUS,Group的權限放置在GROUPMENUS中
把 Form1.cs 重新命名成別的,再重新命名回來,EEPNetClient出現Form1 doesn't exist錯誤?
請在EEPManager\Security Manager中設定FromName為新命名的名稱。
執行Manager Get AD USER,為何沒有抓到密碼?
AD User的密碼是取不出的,在EEP中不需要取得密碼,系統對AD User是在您輸入密碼後直接到ADServer比對,不是依據Table中的密碼值比對。
已存在兩個資料庫ERP與test2,若要到EEPManager中新增一個Solution,應登錄哪個資料庫?
Solution的定義,需要在SystemDB中添加,因為EEPNetClient運行的時候,不知道用戶要登陸到哪個資料庫,所以一律從SystemDB中讀取,因此SystemDB裏面必須要定義此Solution。如果你的資料庫並非共用SystemDB,那麼在你的test2中也需要定義Solution,因為定義菜單項的時候會用到,或者你也可以直接將test2定義為SystemDB,這樣就不需要再多做一次。
關於權限設定中的EveryOne群組說明?
1. 如果該選單是所有User都看的到,則可以設成EveryOne。
2. EveryOne對應到的群組是"00"。
3. groupid=00,groupname='EveryOne'這筆資料是在CreateSystemTable的時候,EEP會自動新增一筆,不需要再手動新增至GROUPS資料表。
SQL DataBase專案如何向ORACLE專案移植? 須改很多嗎?
EEP2006中,Sql與Oracle的設計方法是一樣的。如果不考慮sql語句,需要更改的是Server的InfoConnection的ConnetionType,將其由MSSQL改成Oracle即可,以及在EEPNetServer下將SystemDB換為使用的OracleDB,但如果是自行下達的SQL語句就要注意其兩個資料庫SQL語句的個別差異,最好使用兩者都能接收的SQL語句即可。
Solution的定義,該到哪個資料庫(如果有多個時)
Solution的定義,是在EEPManager中的”Solution Define”功能中定義與增加,在SystemDB中是存放在MenuItemType系統資料表中,EEPNetClient執行的時候,不知道用戶要登陸到哪個資料庫,所以,系統一律從SystemDB中讀取(SystemDB是定義在EEPNetServer的DB Manager中)。所以,SystemDB里面必須要定義此Solution,如果在使用兩個不同資料庫的情況下,你的資料庫並非共享SystemDB,那么在兩個資料庫裏中也需要定義你的Solution,因為定義MenuItem項目的時候是會用到的。
InfoDataSet或WebDataSet重新Active,InfoDataSet總是不能抓取InfoCommand所新增的欄位。
請按下列步驟來排除此問題:
(1). 在VS2005中,如果有執行Web的瀏覽,則Development Server必須重新關掉 (右下工作列中可以找到,如果有的話)。
(2) EEPNetServer關閉,因為該Server可能已將之前的DLL中的InfoCommand進行Active了,因此必須結束EEPNetServer,好釋放此DLL。
(3). 執行VS2005/TOOLS/UnloadAppDomains,這是因為在VS2005中該DLL有可能被Active了,所以在重新Build Server端的DLL時會發生被佔用的Error,經過重Build Server的DLL後,請重新將InfoDataSet或WebDataSet的Active設為False,再設為True即可抓到最新的InfoCommand的欄位。
在WEB 如何呼叫Stored Procedure 傳回資料?
請下載 http://www.infolight.com.tw/download/file/InfoCommand使用存儲過程.doc這個文件,內有詳細的Stored Procedure的使用說明。
我設定了Split System Table,結果資料字典卻沒有抓到, 為何?
當你在EEPNetServer上選擇了Split System Table時,代表共用了系統資料表(存放在SystemDB中),但是, 只有Coldef以及SysAutoNum這兩個系統Table需要獨立,就是在你的Login資料庫中也要存在,其餘的系統Talbe都是可以共用的
存入資料庫的數據有單引號如何解決? (如:惡意攻擊)
在EEP2006中,會自行處理單引號的部分,就是資料內容有單引號時,系統會自動在前面增加一個單引號,來防止SQL命令的出錯,及駭客或有心人士使用SQL隱形碼來攻擊你的資料庫(如使用 ' ;DROP Users – 等資料來攻擊),如ClientQeury與Navigator的查詢,還有UpdateComp的Insert與Update欄位都有這樣的前置處理 ; 但如果是自己的Query程式,要透過SetWhere()來讓EEPNetServer處理時,須自行檢查User所輸入的查詢內容是否有單引號存在,並且同樣在前面加上一個單引號即可。
多人開發不同資料庫時,DD是否能指向同一個?
DD(資料字典)在不同資料庫時,是不能共用的,如真的要共用,可以用資料庫工具Copy過來,另外,如果是相同的資料庫,則多人開發時如果大家指向同一個資料庫時,就可以共用。DD的概念是這樣的,在設計前,規格開發階段就應該完成,最好不要隨意更改,否則引起的資料異動無法自動更新,所以,當大家共用一個資料庫時,最好都設計好DD后,再開始設計,如有變更,之前開發過的系統可能要人工更正。
Oracle中如何追蹤EEP2006所下的SQL語句?
要跟?所有用?的SQL語句,而不是目前用?的?候,可以通?Oracle提供的系?工具包DBMS_SYSTEM。 以SET_SQL_TRACE_IN_SESSION?完成。
先?行一下?句,?得?程信息,??需要跟?的?程:
SQL> select sid,serial#,username from v$session 2 where username is not null;
SID SERIAL# USERNAME
---------- ---------- ------------------------------
8 2041 SYS
9 437 EYGLE
然后再?置sql_trace:
SQL> exec dbms_system.set_sql_trace_in_session(9,437,true)
PL/SQL procedure successfully completed.
….
可以等候片刻,跟?session?行任?,捕?sql操作…
….
停止跟?:
SQL> exec dbms_system.set_sql_trace_in_session(9,437,false)
PL/SQL procedure successfully completed.
另一個辦法是,EEP2006 2200 SP2以後的版本,在EEPNetServerk的”System Log Manager”中,有一個”SQL Log”的Checkbox,將其勾選後,也可以記錄所有EEPNetServer所下出的SQL語句,可透過EEPManager的”SQL Log”來查看。
改過DB 後,出現 DataSource 上找不到DataMember 屬性
如果在修改Server端程式前打開過Client程式,那Server的相對模組的dll是會被緩存下來的,即使重新建置,Client連接的也是以舊的Server dll來連線,可以這樣解決:
(1). 關閉Client的Form
(2). 關閉EEPNetServer,重新建置Server的Dll,在vs的工中執行UnloadAppDomains清空緩存的Server Dll,重新打開Client。
(3). 如果還是沒有解決, 重新啟動Visio Studio,緩存的Server Dll也會清除。
如果使用Create View的Table來設計InfoCommand時,在設計Client的畫面時,資料字典都會失效,應如何處理?
可以在EEPManger的DataDictionary 中增加一個以您的view的名字作為TableName的項目,並將欄位名稱定義在此即可。
如何讓winform開啟時,能夠傳入參數
可以利用EEPManager的Menu Utility項目設定的”Parameters”來作參數設定,這樣就可以在該表單用 this.ItemParams就可以取得這個參數。
如何檢視編輯資料時的Sql語法?
方法一: SqlServer可利用SqlProfiler直接追蹤sql語句。
方法二:通過Debug程式來獲得,您可以Debug一下EEPNetServer,將中斷點設在UpdateComp.cs的Update方法(參數最多的那個).在Update方法中有區分3種,新增修改刪除,您可以將斷點分別放在IDbCommand deleteCommand = AllocateCommand(deleteSQL/UpdateSql/insertSql);
另外,請確認一下EEPnetServer的『Package Manager』中的『Load in memory』應設定為沒有選中,不然無法Debug。
請問Oracle的SQL語法在infoCommand是否支援“SELECT * FROM ATABLE A, (SELECT ID,NAME FROM ATABLE) B WHERE A.ID = B.ID”?
這個是VS裏Oracle的Inner join的一個bug,建議可以通過創建View的方法回避這個問題。
跨資料庫時,因客戶不同需連線不同的資料庫,有沒什麼方法可以不用手動去更改Server端的EEPAlias的連結?
InfoCommand取資料的規則是這樣的:
1. 如果有設定EEPAlias,則一律取自該DB。
2. 如果沒有設定EEPAlias,則在運行時登錄到哪個DB就取自哪個DB。
所以,建議您在EEPNetServer多定義幾個DB的連接,而不是用程式去更改,在設計時只要設定到其中某個就可以,因?運行時是以實際登錄的?准,如果您有些資料是固定某個DB的,那?您就選擇設定InfoCommand的EEPAlias。
當資料語言是越南語.存檔到DB是亂碼?
因為使用的是越南文,在Oracle的預設語言中不包含在內,需要設定語言集,或者直接將DB的欄位定義為NVarchar2類型也可以。
如何將EXCEL,DOC,PDF檔案存入ORACLE中的BLOB欄位,並讀取..
可以通過File.open打開檔,然後存為byte[] ,再利用OracleParameter的方法Insert到資料庫中。
請問如何叫用Server上的ConnectionString?
在Server端可以通過以下程式:
IDbConnection conn1 = this.AllocateConnection("ERPS");
if (conn1.State == ConnectionState.Closed) conn1.Open();
IDbTransaction trans = conn1.BeginTransaction();
this.ExecuteCommand("update/insert/delete....", conn1, trans);
......
trans.Commit();
this.ReleaseConnection("ERPS", conn1);
可以只對某一個Table 的Primary key 設定大小寫分開嗎?
執行Sql,以Cutomers表的CompanyName欄位為例
ALTER TABLE Customers ALTER COLUMN CompanyName [nvarchar](40) COLLATE Chinese_Taiwan_Stroke_CS_AS。