發表文章

Oracle11g ODP.NET安裝記錄

  前陣子知道.Net4.0之後的版本Oracle Client不再更新,並看完了些ODP.NET的介紹文章後, 今天找了時間來玩玩,瞭解一下若目前的專案更新的話會踩到什麼地雷XD。 整理重點記錄如下: 特性 若在Oracle Server也是11.2.0.3以上,在Server安裝Server Components,那開發可以直接在Visual Studio內修改Schema、Procedure、Function 測試偵錯等管理 Entity Framework支援Vs2008~2012 ODP.NET支援OracleConnection、OracleCommand等與原本ADO.NET相同的類別 參考DLL: 安裝目錄\11.2.0\client_1\odp.net\bin 命名空間Oracle.DataAccess.Client Ps:System.Data.OracleClient在.net.4.0後微軟不在更新,並在之後的版本可能會移除 環境注意 sqlnet.ora,tnsname.ora 與舊的9i,10g格式相同,所以只要複製到安裝目錄即可 ..\Network\Admin 組件繫結Memo:若開發參考的是ODP.NET 10g,而主機是ODP.NET 11g,依組件繫結重新導向功能 特性,則主機上的程式會自行參考11g 參考 http://blog.darkthread.net/post-2011-03-31-assembly-binding-redirect.aspx Ps:若開發版本是比主機高,則主機須使用BindingRedirect設定來解決 開發測試 使用Oracle.DataAccess.Client. OracleConnection的連線字串不支援Unicode=true關鍵字 connectionString="Data Source=xxx;Persist Security Info=True;User ID=xx;Password=xx; Unicode=True " Oracle.DataAccess.Client效能實測2萬筆資料(60個欄位) FillDataSet原約4秒 變2秒,快了一倍 待續…..還未踩到XD 安裝檔案 ODAC 11.2 Release 5...

[.NET]如何擷取部分網頁內容轉成圖片

前言        如題,在專案上有此需求,需將網頁上的部份內容轉成圖片,例如:特定div區塊的資訊。   這樣類似的Solution之前也有看過類似的,如: IECapt ,但它需透 過執行檔下Command去轉檔   ,比較不適用直接在網頁上匯出的圖片需求。剛好在Codeplex有找到較符合我的需求的解決   方法,在此分享給大家。     SouceCode網址: http://htmlshot.codeplex.com/     使用方法:   下載後會有完整的程式碼及範例,使用重點如下   1.引用.js <script src="Scripts/HelpersScripts.js" type="text/javascript"></script>     2.加入一個隱藏欄位 <input id="htmlStringInput" name="htmlStringValue" type="hidden" value=""/>     3.針對要匯出的內容使用div包住     4.將div內容在load或匯出的Client事件,先將div內容塞給 隱藏欄位 例:   var myDivContentString = document.getElementById('myDiv').outerHTML; document.getElementById('htmlStringInput').value = getHtmlString (myDivContentString);   5.Server端匯出方法:   System.Drawing.Imaging.ImageFormat bitmatFormat = System.Drawing.Imaging.ImageFormat.Png; HTMLShot.GetHTMLShot (Page.Request, htmlStringInput.Value, Response.OutputStr...

解決Office轉成pdf在WindowService不能執行

問題 這兩天把撰寫好的Office轉成pdf程式搬到WindowService執行,執行後程式會hand住, 在工作管理員看到的winword.exe記憶体不斷升高,查看程式後發現 wordDocument = wordApplication.Documents.Open(ref pSourceDocPath);回傳的是null,但word程式卻有在背景執行, 以致wordApplication在關閉時整個會卡住,上網查了些相關文章,大部分寫的是 Microsoft.Office.Interop不能在WiindowService執行,幸好在快放棄時找到了一個很奇怪的方法,一試 之後竟然可以成功.....這真是太神奇了。 解決方法 在以下路徑建立"Desktop"資料夾 32位元os C:\Windows\System32\config\systemprofile 64位元os C:\Windows\SysWOW64\config\systemprofile 以上我在window7 64位元及window2008r2 64位元 測試成功 參考文章 http://www.go4answers.com/Example/word-automation-through-windows-service-171373.aspx

Tech Day2011筆記

圖片
Day1 .NET 開發技術 2011 綜覽與活用 吳宏彬 Mobile 偵測與應用的擴充套件 51degress Mobile view engine iPhone模擬器 http://blog.darkthread.net/post-2010-03-11-iphone-browser-emulator.aspx Windows Phone SDK 7.1 關鍵報告 I II :認識 Mango 新增 API & 開發工具大進化 董大偉 · Tile 客製化及動態新增 · Application Tile:使用者自行釘選 · Secondary Tile:使用程式新增 · Push Notifycation:跟Push Notifycation要求 Url 後存放在自己的 Server ,由 Server 發送訊息給 Push Notifycation後再轉給手機 · Background Audio:背景音樂執行,需實作相關介面 · Background Transfer:背景檔上傳下載 · Task排程工作:分為完全沒使用手機才會通知及定時通知。 · ShellToast 訊息通知:為背景工作的訊息通知。 · LocalDatabase :使用Linq To SQL,個人認為直接使用物件序列化會好用得多。 · IsolateStorage Explorer:檢視隔離區的檔案 Day2 WCF 4.0 企業級服務開發及實戰 張書源 · 組態簡化,預設已繼承相關的基本設定 · Behavior不加Name 為全域設定 · 更新預設的Binding:透過ProtocalMapping區段如下 <ProtocalMapping><add Scheme="http" binding="wsHttp"../> · AppFrabic:IIS 套件管理WCF · IIS7.5進階設定:設定支援TCP/IP 例:http,net.tcp · WCF 路由服務:用來作新舊版服務的轉接及使用BackupList 當服務停掉時由BackupList內的服務補上。 · Dicovery服務探索 · WebSocket:雙向溝通 · Jo...

適用在SilverLight的byte與字串互轉

在SilverLight使用WebClient對Server端叫用網頁(.aspx or .ashx)取回Binary時,若網頁丟出例外, 在SilverLight收到的例外會是"遠端伺服器傳回一個錯誤: NotFound。 這樣的訊息在Client端根本不知道是發生什麼事,所以改成回傳一份訊息byte,寫法如下 Server 端 byte[] byteArray = System.Text.Encoding.Default.GetBytes(str); Response.Clear(); Response.BinaryWrite(byteArray); Response.End(); SilverLight string str = System.Text.Encoding.Default.GetString(byteArray); 但...此行程式在SilverLight不支援,所以無法使用。 參考別人寫的可以使用Base64轉,但..中文字不能轉,所以我沒用。 http://wincn.org/post/330.html   最後參考小朱的一段Byte與字串互轉的程式,測試後互轉沒問題 Server 端 byte[] byteArray = Encoding.UTF8.GetBytes ("發生例外!"); Response.Clear(); Response.BinaryWrite(byteArray); Response.End();   SilverLight byte[] byteArray = new byte[e.Result.Length]; e.Result.Read(byteArray, 0, byteArray.Length); string errorMsg= Encoding.UTF8.GetString (byteArray, 0, byteArray.Length);

mp4檔案下載發生404NotFound

圖片
今天同事反應一段下載檔案的程式碼,下載mp4時會發生404Not Found的例外, 程式如下: public static Boolean CheckUrl(String uri) { Uri webAddress = new Uri(uri); WebRequest request = WebRequest.Create(uri); try { WebResponse response = request.GetResponse(); return true ;   } catch { return false ; }   } Ps:在IIS或IISExpress測試才會發生錯誤,用VisualStudio預設的虛擬伺服器,是不會發生的。 本以為是檔案太大,但找了一個3mg的檔案測試,也是一樣錯誤,後來想到這好像Mine type 在iis上沒註冊。 解決方法 加入設定,副檔名:.mp4 MINE類型:video/mpeg IIS6設定 IIS7設定

[ASP.NET4.0]Url Routing Demo

圖片
4.0的新功能,主要功能為可以自訂網頁的Url,讓Url更容易識別。 詳細介紹請參考如下: http://www.dotblogs.com.tw/regionbbs/archive/2010/01/20/asp.net.4.0.new.feature.seo.improvement.aspx http://msdn.microsoft.com/zh-tw/library/dd992978.aspx Demo 在Global.asax 或Module 註冊Rotute 導頁方法 取得Route的參數值 測試結果 原始URL 透過Route

Oracle安裝出現unable to create an item in windows start menu or desktop

圖片
剛Setup好的Win2003 主機,安裝OracleClient後出現如下圖

[Script]解決開視窗會變開在頁籤

圖片
前言 在目前各大主流的瀏覽器(IE9、Chrome、Firefox..),在用超連結(target=_blank)或用Script下 wndow.open(),預設都會將網頁開在新的頁籤上,因為這樣,本來的程式有些功能是讓使用者 開新視窗取得資料帶回,便會造成使用上的不方便,而真要開窗的話是可以 調整瀏覽器上的設定,但總不能叫使用者一個一個調...,幸好google了一下有找到解決方法。如下: 語法格式: <a onclick="window.open(this.href,'demo','toolbar=no');return false" href="http://www.google.com" >POP UP</a> 參數注意: Ps:在IE9、Chrome、Firefox測試都是Ok的 參考網址 http://www.levitical.org/post/IE9-WindowOpen-fails-when-title-string-contains-spaces.aspx

[SQL Azure]資料庫匯入注意事項

圖片
本文記錄若要將本地資料庫的資料匯入SQLAzure時的相關動作 產生指令碼 重點1.產生結構及資料 重點2.選擇SQLAzure的類型 Ps:此選項好像只有SQL Server2008R2 才有