Tuesday, June 22, 2010

Windows Http Services 元件使用

最近幫同事測試 Windows Http Services (WinHttp) 的元件 ,測試後發現比我之前使用的 WinInet 還好用,因為它可以設定透過 Proxy Server 來連接外部網路 。不過設定的參數有 3 種,而使用 IE 預設模式時的執行結果並不在我預期,因此猜想是否是元件讀取的設定值與 IE 的設定值不同所致。不過雖然有 ProxyCfg.exe 可以設定元件所讀取的 Proxy 設定值,不過若要用在大量客戶端的話,則不可以讓客戶自行去執行此設定程式。因此去找到 IE 設定的在 Registry 中的值,看來只有設定 Proxy Server 資訊,並沒有登入 Proxy Server 的使用者資訊。

Monday, December 07, 2009

在XP上安裝IIS開發ASP程式操作Access 資料庫

最近在XP上安裝IIS開發ASP程式操作Access資料庫,發生下面的錯誤:
Microsoft JET Database Engine (0x80040E09)
無法更新。資料庫或物件是唯讀的。
試了很多方法,包括在資料夾上點擊右鍵-“屬性”-取消“唯讀,不知是否為XP的安全性限制,設定完後再去檢視卻仍然是唯讀。後來在資料庫檔上檔夾上點擊右鍵-“屬性”-“安全”-添加用戶:“IUSR_電腦名” 並開放“IUSR_電腦名”的讀取、寫入許可權,如此ASP就可以寫入Access了。PoCo說此方法是目前解決這個問題最好的辦法,一般都可以解決問題。來源在此

Tuesday, February 03, 2009

使用 apache 的 axis 產生 web service client

1. 先使用 apache 的 axis 依據 WSDL 檔來產生 client 端所需的 java 檔。

java org.apache.axis.wsdl.WSDL2Java CBService.wsdl


2. 然後建立一個新的 java 類別來使用步驟 1 所產生的 class。

CBService service = new CBServiceLocator();


// Now use the service to get a stub which implements the SDI. XMLServiceSoapPort

port = service.getXMLServiceSoapPort();


String SendXML = "1234";


System.out.println(port.XServiceMethod(SendXML));


3. 若欲連結的 Web Service 是架在 https 上時,
必須先將該 ssl 網站的憑證匯出

http://jugsi.etruriainnovazione.it/Wiki.jsp?page=WebServiceOverHTTPS
然後將憑證匯入 keystore 中

keytool -importcert -alias SecuCA -file server.cer


最後於程式最前方加上

System.setProperty("javax.net.ssl.trustStore", "myabsolutepathkeystore");

System.setProperty("javax.net.ssl.trustStorePassword", "mypassword") ;

Monday, January 19, 2009

解決在 XP 中刪除 AVI 檔案的問題

To correct this misbehavior in Windows XP, remove the following registry key. HKEY_LOCAL_MACHINE\SOFTWARE\Classes\CLSID\{87D62D94-71B3-4b9a-9489- 5FE6850DC73E}\InProcServer32
或是 REGSVR32 /U SHMEDIA.DLL

Tuesday, November 18, 2008

error C2146: syntax error : missing ';' before identifier 'ContextRecord'

出現 error C2146: syntax error : missing ';' before identifier 'ContextRecord' 錯誤時,可能是 include 檔案的順序不對所致。改為這樣就對了。

#include stdio.h
#include windows.h
#include windef.h
#include winnt.h
#include basetsd.h

MSVCRTD.lib(MSVCRTD.dll) : error LNK2005: _fclose already defined in libcmtd.lib(fclose.obj)

出現MSVCRTD.lib(MSVCRTD.dll) : error LNK2005: _fclose already defined in libcmtd.lib(fclose.obj),可能是編譯的專案中有使用到一個 Lib,而兩個 Lib 編譯選項中Project->Setting->C/C++->Code Generation 中 Runtime Library 的設定不同。

Wednesday, October 29, 2008

FireFox 突破防火'牆

最近公司換了防火牆之後,我的FireFox就完全連不出去了。出現錯誤如下:
* 錯誤碼: 502 Proxy Error,The request was rejected by the HTTP filter. Contact your ISA Server administrator.
後來發現原來是防火牆會擋非IE的瀏覽器。經過我安裝leaies網友指點的套件Configuration Mania 後, 在Browser裡面的UserAgent裡,設定字串改為WinXP SP2的字串後,可以正常連線了。真的非常感謝網友們的幫忙。

Monday, August 04, 2008

呼叫 CryptDecrypt 會出現 0x80090005 錯誤

最近寫了一個元件,在某些情況下,呼叫 CryptDecrypt 會出現 0x80090005的錯誤。最近發現可能是我建立 Key 與使用 Key 的使用者不同。目前可以行的通的方法為:
1.登入電腦。
2.將元件加入服務中,並設定為由登入的使用者執行。
3.執行產生 Key 的程式。
如此建立 Key 與使用 Key 的使用者是同一人。

注意:若透過遠端桌面連線來執行上面的步驟,是無法正常運作的。