台灣最大程式設計社群網站
線上人數
996
 
會員總數:246089
討論主題:189663
歡迎您免費加入會員
討論區列表 >> C# >> client 端執行server上的exe檔
[]  
[我要回覆]
1
回應主題 加入我的關注話題 檢舉此篇討論 將提問者加入個人黑名單
client 端執行server上的exe檔
價值 : 20 QP  點閱數:404 回應數:11
樓主

小志
門外漢
0 2
36 5
發送站內信

各位大大好:
小弟遇到了下述問題,可以幫我看看什麼問題嗎QQ

當USER按下ERP(tiptop)按鈕後會執行server上的api.exe執行檔
而api會到oracle select data,一切都正常
但當海外(大陸)公司執行這段 oracle 的select時 會有select 時間過長(大約40秒)甚至發生逾時問題
而台灣執行 oracle select 大約只有 1~2秒

看起來是台灣server之間的資料傳遞而已?
是不是呼叫api時候都會在客戶端起一個程序呢?

相關資訊如下:
1. 開發工具為Visual Studio 2019 c#主控台應用程式(.net4.0)
2. api使用檔案共享,權限為everyone
3. api server 與 oracle server都在台灣公司
4. oracle select 連線字串格式 DATA SOURCE=(DESCRIPTION=(ADDRESS_LIST=(ADDRESS=(PROTOCOL=TCP)(HOST=192.168.x.x)(PORT=1521)))(CONNECT_DATA=
(SERVER=dedicated)(SERVICE_NAME = servicename)));PERSIST SECURITY INFO=True;USER ID=id;PASSWORD=password






搜尋相關Tags的文章: [ C# ] , [ .NET ] , [ 主控台應用程式 ] , [ Oracle連線 ] ,
本篇文章發表於2020-04-10 12:07
1樓
回應

誰是誰
檢舉此回應
Client -- 送命令 --> Server -- 回傳資料 --> Client

我猜應該是這樣吧?所以只要網路延遲夠高,從 server 回傳資料給 client 就會變慢正常啊
本篇文章回覆於2020-04-10 15:07
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔--
2樓
作者回應

小志
檢舉此回應
這邊補充一下

Client --> 指令到 api server 給api --> oracle server select data --> select 後將資料 資料寫入 api 的 server db(msdb)

這樣最後還會回到Client?
本篇文章回覆於2020-04-10 16:54
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔--
3樓
回應

誰是誰
檢舉此回應
照你的說法,那應該就是沒有,大概只能問鼎新了
本篇文章回覆於2020-04-10 23:24
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔--
4樓
你那個ERP按鈕, 是只要任意一個人按了, 就全世界都能用了,

還是各國的分公司各自獨立呀??


你的訊息中,
1. 開發工具為Visual Studio 2019 c#主控台應用程式(.net4.0)

這個應該是指 api.exe 吧

還是連同各國分公司使用的系統也是主控台應用程式???
本篇文章回覆於2020-04-11 17:30
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔--
5樓
最有價值解答

缺氧的羊:窒息
捐贈 VP 給 缺氧的羊:窒息 檢舉此回應
如果你的網路模式是
api.exe 放在server, 然後設定為所有人都能存取,
之後是各國透過 網芳 連進來 執行api.exe 的話,

那就是各國, 各自, 在自己的電腦執行該程式...
( 從頭到尾那隻api.exe就不是在 server執行哦 )
本篇文章回覆於2020-04-11 17:34
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔--
6樓
作者回應

小志
檢舉此回應
4#: ERP的那個按鈕是在各公司都可以執行的,只是呼叫api.exe時候給的指令不同(廠別)
5# 公司網路模式是這樣沒錯。所以Client端會到server上把api.exe複製到Client上面執行囉QAQ

本篇文章回覆於2020-04-13 15:59
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔--
7樓
不錯的參考

誰是誰
檢舉此回應
除非 api.exe 裡是呼叫 stored procedure 直接在 oracle server select --> insert,否則免不了在 select 的時候,會把資料拉到 api.exe 執行時期的記憶體 (不是 exe 檔案所在的記憶體)。
本篇文章回覆於2020-04-14 00:23
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔--
8樓
回應

阿恢
捐贈 VP 給 阿恢 檢舉此回應
印象中tiptop應該可以同時介接ORACLE及MS-SQL,然後從ORACLE端讀入後拋入MS-SQL,這樣應該就不用再寫一支api.exe,直接寫在tiptop裡就可以了。
本篇文章回覆於2020-04-14 10:22
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔--
9樓
作者回應

小志
檢舉此回應
#8 公司的tiptop是舊版,好像沒有這樣的功能...
本篇文章回覆於2020-04-14 10:31
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔--
10樓
回應

阿恢
捐贈 VP 給 阿恢 檢舉此回應
利用genero連接這兩種資料庫...

Genero技轉沒教的事(07)-異質資料庫使用,以SQLite為例

上面連結的文章也提到:可以撰寫一支作業,同時介接ORACLE及My SQL,從ORACLE端讀入作處理完後拋入My SQL的資料庫內。
本篇文章回覆於2020-04-14 11:38
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔--
11樓
作者回應

小志
檢舉此回應
#all
目前已知道:
1. 呼叫遠端程式會複製到本機執行該程式
2. 因tiptop版本太舊(1.0),無法使用存取其他資料庫技術
感謝大家回覆!
本篇文章回覆於2020-04-17 11:55
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔--
   
1

回覆
如要回應,請先登入.