none
在 vs2005 debug model 可以連不同台電腦的 vss, 但 deploy 後, 就會出現 System.UnauthorizedAccessException RRS feed

  • 問題

  • 求救.......

    目前我是使用 vs2005, os 是 windows xp, db 是 sql server 2000, 用程式去連不同台電腦(網路芳鄰)的 visual sourcesafe 2005 的 ini 檔.

    在 vs2005 debug model 的時候, 運作正常. 可以 check in/out, add, delete visual sourcesafe 2005 的 prjoect 的任何運作.

    但在佈署後, 用 ip 去測試時, 發現在連 visual sourcesafe 2005 的 ini 檔時, 會出錯, 而其它連 db, read fild from 網路芳鄰等都運作正常.

    而我的程式邏輯是:
    A.方法
    1. 用 ip/pagefilename.aspx 去連 網頁
    2. 用 模擬使用者(已是 Administrator + PowerUser)有權限可以 登入 該ip電腦 的使用者
    3. 再呼叫 使用 COM 元件 執行
    B.方法
    1. 設定 該虛擬路徑的 IIS 用 匿名存取 的方法(而匿名存取的 user, 有 Administrator + PowerUser 的權限)
    2. 用 ip/pagefilename.aspx 去連 網頁
    3. 再呼叫 使用 COM 元件 執行

    目前在 呼叫 COM 元件時, 就 throw exception, 如下(無論是用 A or B 方法, 都一樣):
    失敗:

    System.UnauthorizedAccessException: 由於發生下列錯誤,為具有 CLSID {783CD4E4-9D54-11CF-B8EE-00608CC9A71F} 的元件擷取 COM Class Factory 失敗: 80070005。

    而 呼叫 COM 元件的程式碼如下:
    IVSSDatabase vssDatabase = new VSSDatabase(); (有試過改成 VSSDatabaseClass vssDatabase = new VSSDatabaseClass(); 仍不行....)

    IVSSDatabase vssDatabase = new VSSDatabase(); <---- 在此就錯了


    在 web.config 檔內, 也有設定 <identity impersonate="true" userName="YourAdminUsr" password="YourAdminPwd" /> 這個

    也有註冊 VSS 的 COM 元件 (regsvr32)...  但仍不行.......

    實在是弄不懂... 為什麼用 vs2005 debug model 就可以正常執行, 而佈署後, 改用 IIS 就不行......

    天啊..... 已經想了快一個星期... try 了所有想得到的情況都不行..... 好想哭哦... ~>"<~

    懇求那位高手救救我.....

    2006年11月13日 上午 09:46

解答

所有回覆