|
VFP 愛用者社區 本討論區為 Visual Foxpro 愛用者經驗交流的地方, 請多多利用"搜尋"的功能, 先查看看有無前例可循, 如果還有不懂的再發問. 部份主題有附加檔案, 須先註冊成為社區居民才可以下載.
|
上一篇主題 :: 下一篇主題 |
發表人 |
內容 |
qwepoi
註冊時間: 2014-07-17 文章: 2
第 1 樓
|
發表於: 星期四 七月 17, 2014 5:21 pm 文章主題: 請問Web(A電腦)執行VFP COM Server(B電腦)exe檔,遇到有執行卻沒反應之問題? |
|
|
各位大大好,
在下寫程式時遇到一個問題:
------------------------------------------
用途:透過ie(asp.net Client端)執行server端的.exe檔於在server端產生pdf檔
.exe檔:VFP編COM Server - out of process
產生pdf:透過adobe pdf印表機直接存檔(路徑已設定,直接將frx報表存成pdf檔)
測試環境:Windows 8.1
------------------------------------------
我用asp.net寫一網頁,透過一個按扭執行server端的.exe檔,
在本機測試:可正常產生pdf檔
掛到IIS上測試:.exe檔有執行卻無反應-閒置
※查了google一些討論,有提到session 0 isolation問題,
我測驗將.exe檔在server端改為直接連實體印表機列印
在本機測試:可正常列印
掛到IIS上測試:可正常列印
→判斷執行程序在背景程序是有執行完的(才能列印)
※而後發現會不會是.exe檔在server端產生pdf檔
→它會先跳出列印訊息畫面並自動關掉後即產生pdf檔
在跳出列印訊息畫面時被Server電腦把程序給擋掉?
本機測試:可正常產生pdf檔 → .exe是在工作管理員的 應用程式 層執行
掛到IIS上測試:無法產生pdf檔 → .exe卻是在工作管理員的 背景處理程序 層執行
查了網站相關說明:http://ultidev.com/Forums/yaf_postst1561_how-to-call-a--exe-from-a-asp-net-Web-application.aspx
不知是不是含UI程式於背景處理程會無法執行?
----------------------------------------------------------
上述是我目前遇到的情形,不知各位大大是否也有遇過相同情形與如何解決的?~
~感激~ |
|
回頂端 |
|
|
easywin3
註冊時間: 2010-10-19 文章: 13
第 2 樓
|
發表於: 星期四 七月 17, 2014 10:59 pm 文章主題: |
|
|
以下源码把 FRX 转去 XPS 再转 PDF, 下载 gxps.exe 无界面干扰。
http://www.ghostscript.com/download/gxpsdnld.html
*****************************************************
DECLARE INTEGER GetDefaultPrinter IN winspool.drv;
STRING @ pszBuffer,;
INTEGER @ pcchBuffer
nBufsize = 250
cPrinter = REPLICATE(Chr(0), nBufsize)
= GetDefaultPrinter(@cPrinter, @nBufsize)
cPrinter = SUBSTR(cPrinter, 1, AT(Chr(0),cPrinter)-1)
DECLARE INTEGER SetDefaultPrinter IN winspool.drv;
STRING pszPrinter
SetDefaultPrinter("Microsoft XPS Document Writer")
REPORT FORM (reportFRX) NOCONSOLE TO FILE (cFilename)
cCmd='gxps.exe -sDEVICE=pdfwrite -sOutputFile=report.pdf -dNOPAUSE report.xps'
DECLARE INTEGER WinExec IN win32api ;
STRING command, INTEGER param
retval = WinExec(cCmd, 0)
CLEAR DLLS WinExec
SetDefaultPrinter(cPrinter)
***************************************************** |
|
回頂端 |
|
|
qwepoi
註冊時間: 2014-07-17 文章: 2
第 3 樓
|
發表於: 星期五 七月 18, 2014 3:12 pm 文章主題: |
|
|
easywin3 寫到: | 以下源码把 FRX 转去 XPS 再转 PDF, 下载 gxps.exe 无界面干扰。
http://www.ghostscript.com/download/gxpsdnld.html
*****************************************************
DECLARE INTEGER GetDefaultPrinter IN winspool.drv;
STRING @ pszBuffer,;
INTEGER @ pcchBuffer
nBufsize = 250
cPrinter = REPLICATE(Chr(0), nBufsize)
= GetDefaultPrinter(@cPrinter, @nBufsize)
cPrinter = SUBSTR(cPrinter, 1, AT(Chr(0),cPrinter)-1)
DECLARE INTEGER SetDefaultPrinter IN winspool.drv;
STRING pszPrinter
SetDefaultPrinter("Microsoft XPS Document Writer")
REPORT FORM (reportFRX) NOCONSOLE TO FILE (cFilename)
cCmd='gxps.exe -sDEVICE=pdfwrite -sOutputFile=report.pdf -dNOPAUSE report.xps'
DECLARE INTEGER WinExec IN win32api ;
STRING command, INTEGER param
retval = WinExec(cCmd, 0)
CLEAR DLLS WinExec
SetDefaultPrinter(cPrinter)
***************************************************** |
謝謝easywin3的回復
我試了您提供的gxps.exe方法,本機執行成功,而程式掛到IIS後執行同樣有啟動程式但也閒置沒反應了(沒轉出PDF)...
反複測試後大概知道問題出在哪
→REPORT FORM (reportFRX) NOCONSOLE TO FILE (cFilename)
只要程式有打此段語法,VFP好像預設都會跑出列印哪一頁的小框框,可能又發生了UI程式於背景處理程序被擋了?
若是UI真的會被背景處理程序擋可能就很麻煩了,REPORT FORM (reportFRX) NOCONSOLE TO FILE (cFilename)語法可能就沒辦理執行了...
但也謝謝您的回復~讓我多學會用gxps.exe轉出PDF的方法~謝謝。 |
|
回頂端 |
|
|
arronlee
註冊時間: 2013-09-04 文章: 6
第 4 樓
|
|
回頂端 |
|
|
|
|
您 無法 在這個版面發表文章 您 無法 在這個版面回覆文章 您 無法 在這個版面編輯文章 您 無法 在這個版面刪除文章 您 無法 在這個版面進行投票 您 無法 在這個版面附加檔案 您 無法 在這個版面下載檔案
|
|