none
透過IE執行smart client 為何有時候沒有任何畫面? RRS feed

  • 問題

  • 我用 .net 1.1 寫了一smart client程式放在server端

    client端透過 IE 來執行, .net安全性都有設定正確

    我發現有些client端可以正常執行

    有些client端卻無法執行,超過五分鐘仍沒看到程式主畫面以及任何錯誤訊息

    於是我在這些無法執行的client端,改用捷徑的方式來執行(不透過IE)

    譬如建立類似這樣的捷徑

    c:\windows\...\framework\v1.1.4322\ieexec.exe  http://..../test.exe

    發現都可以正常執行了,可是為什麼透過IE執行起來卻不太穩定呢?

    是IE本身呼叫 ieexec.exe 的問題嗎?

    請有經驗的前輩指點一下,謝謝

    2006年9月4日 上午 02:25

解答

所有回覆

  • 我自己測試過

    發現只要是安裝了 .net 2.0 runtime 的電腦就會出現這種怪異的情況

    就是從網頁上無法執行 smart client 程式,沒出現任何畫面和錯誤訊息

    使用 TaskManager 觀看發現根本沒有 IEexec.exe 這個process

    如果在命令列之下自己輸入 ieexec http://.../test.exe 又可以正常執行

    可見 IE6因為安裝了 .net 2.0 而被改變了某些設定, 導致IE去呼叫 ieexec 出現問題

    都沒有前輩遇到這問題嗎?

    還是大家都用asp.net,很少人用smart client架構?

    2006年9月5日 上午 06:20
  • 我們用的 smart client 架構是不走 IE 的 ...
    用到 IE 的只有 Web application,所以沒遇過你的問題 .

    Smart Client 不是只有綁著 IE 才叫 Smart Client...

    2006年9月5日 上午 08:41
    版主
  • Dear TommySung:

    我試過在Client端的電腦上,同時安裝.NET 1.1或.NET 2.0,再執行 Smart Client的程式,並不會發生這個問題!

    可否,請你幫忙檢查一下,幾個狀況:

    1. 事件檢視器是否有相關訊息
    2. 直接在執行中輸入explorer http://.../test.exe ,是否可以執行
    3. 檢查一下IIS上 擺放Smart Client的虛擬目錄,所設定的執行的.net環境是1.1或是2.0
    4. 若同時有安裝.NET 2.0,是否需要在Microsoft .NET Framework 2.0 Configuration 中設定權限??

    希望上述幾個方向,對你所有幫助

    Kevin,Tsui

    2006年9月5日 下午 05:05
  • 1.事件檢視器沒有任何錯誤或警告訊息

    2.Iexplore http://.../test.exe可以執行

       或是 c:\...\framework...\ieexec http://.../test.exe 也可以執行

       惟獨透過IE下載不行執行,但卻沒有任何錯誤訊息讓我偵錯

    3. 虛擬目錄的 ASP.NET 標籤是顯示用 dotnet1.1

    4.已經利用 caspol設定好 .net2.0 安全性, .net 1.1 也有設定相同安全性

      我嘗試過故意把安全性拿掉,從IE執行也是沒有任何訊息跳出

      正常情況下沒有權限執行,會跳出視窗顯示 ...使用權限要求失敗 或其他錯誤訊息

      可見 IE 根本沒有呼叫到 ieexec.exe 這支程式來處理

       從taskmanager 觀察也發現ieexec.exe沒有出現過

     

    另外, C:\Documents and Settings\Administrator\Local Settings\Application Data

    裡面也沒有 assembly 目錄,如果正常執行smart client應該會在這建立assembly目錄才對

    結果我把整個磁碟全部設定為everyone,IUSER,ASPNET都有完全控制權限

    還是同樣的結果,慘啊.......

    2006年9月6日 下午 03:26
  • 後來我又測試了一下

    用.net 1.1 寫了一個只顯示form1的程式

    透過IE下載就可以執行了

    本來透過IE下載執行會失敗的test.exe裡面有

    1.Remoting interface 存取遠端物件

    2.透過win32api (InternetGetCookieA)存取cookie

    3.Registry.CurrentUser 來寫入機碼

    不知道是否因為如此, .net 2.0 加強了某方面的安全性

    所以把我的程式阻擋了

    有沒有辦法在不改寫程式的情形下

    透過更改.net安全性來解決? (可是已經設定 FullTrust了耶)

    2006年9月6日 下午 04:14
  • Dear TommySung:

    照你所說的,看起來似乎沒有什麼問題!

    就我之前開發的經驗,可能還有一個問題,在我的Blog中有一篇文章,不知道對你有沒有幫助,你可以參考一下

    http://dotnetframework.blogspot.com/2005/05/window-2003iis-6bin.html#links

     

    Kevin,Tsui

    2006年9月7日 下午 06:25
  • Kevin前輩 感謝你這一系列的指導

    熬夜兩三天,快被微軟搞死了......

    今天測試竟然發現原來是執行檔案大小的問題

    不知道你是否跟我有同樣的測試結果

    詳細在這  http://forums.microsoft.com/MSDN-CHT/ShowPost.aspx?PostID=706531&SiteID=14

     

    剛看了你的blog

    我放置smartclient很簡單

    只是在預設網站 wwwroot 建立目錄

    然後把執行檔丟進去而已

    就算有dll也都放再同一層目錄

    很好奇你們的bin目錄 ,主要的目的是什麼?

    我以為在IIS6之下,只有asp.net撰寫的程式才需要bin目錄

    2006年9月7日 下午 06:47
  • KevinTsui

    我後來想到解決方法了,給你參考一下

    在這 http://forums.microsoft.com/MSDN-CHT/ShowPost.aspx?PostID=706524&SiteID=14&mode=1

    解決方法很簡單,但我卻搞了將近一星期

    微軟改版,真的會讓人心臟病發 >.<

    2006年9月9日 上午 05:15