2008-07-26

變更 ChartFX 7.0 的輸出路徑

ChartFX 是一個很強大的圖表軟體, 特別是到了 2005 的版本之後, 運用了 DHTML 和 AJAX 的技術, 讓原先要透過安裝 ActiveX 才能達到的效果, 也可以直接在網頁上呈現, 而且互動性也像 ActiveX 一樣的好, 但是代價就是要多付出一些 server 和 client 之間資料的來回傳送!

在實際使用 ChartFX 7.0 開發 Web App 的時候,  發現了一個現象, 就是如果透過 Visual Studio 內建的 WebDev.WebServer.exe 啟動的話, ChartFX 的暫存檔會輸出到 ~/chartfx70/temp/ 底下, 可是當佈署到 IIS 之後, 它會在 WebSite 的根目錄下建立一個 /chartfx70 虛擬目錄, 這時候如果透過 ISA 將內部網站發佈出去的話, 除了要開放該 Web 應用程式的路徑之外, 就還要再多開放一個 /chartfx70 的路徑, 外部的人才可以順利的取得 chart 的內容, 雖然動作不難, 但是還要動到 ISA 的設定也是有點不方便, 所以才想找個方法讓 chartfx 的輸出路徑改變一下!

在 google 上找了很久, 其實沒有找到答案, 但是有找到一點點看起來不太像的線索, 最後還是透過 Reflector 才搞定了這個問題!!

image

正確的步驟就是在 ~/bin 資料夾 ChartFX.WebForms.dll 的所在位置建立一個名為 ChartFX.WebForms.config 檔案, 然後填入以下內容, 並視需要修改其中 Relative 和 Absolute 的值就行了, 至於這兩個節點的內容應該很容易了解, 分別是相對路徑和實體路徑!!

<chartfx>
    <DefaultHandler>ChartFX.WebForms.Internal.OutputFileHandler,ChartFX.WebForms</DefaultHandler>
    <FileOutput>
        <Relative>/Web1/chartfx70</Relative>
        <Absolute>D:\Web1\chartfx70</Absolute>
    </FileOutput>
</chartfx>

2 則留言:

淑美 提到...
作者已經移除這則留言。
淑美 提到...

您好,想請教您,如果我在.NET建立網站時選擇利用檔案系統的方式(沒有安裝IIS),同樣在執行時也會碰到例如:無法對應路徑 '/chartfx62/temp'的問題,想請問解決方式同您文章上的方式嗎(目前試不成功)?因第一次接觸ChartFx,所以一切都在摸索中,如果方便能否方便分享相關完整範例呢?感謝你。