Windows 2003 Server 中DOTNET程式訪問COM組件

來源:互聯網
上載者:User
server|window|程式|訪問

  今天挺高興,項目終於上線使用。只是上線之前遇到的問題折磨得人精疲力盡。。。不過總算解決了。。在這把問題說出來,希望對有需要的朋友提供些協助~~

  項目:DOTNET項目,C#開發,主要功能是通過COM組件訪問遠程介面。

  運行環境:Windows 2003 Server + IIS6.0 + .Net 1.1

  問題:COM組件及系統在WINDOWS2000作業系統下都能正常使用,但遷移到WIN2003下,在程式調用組件時進程卡住了,有時會返回伺服器出現意外情況的錯誤~

  原因分析:首先,組件在其它作業系統下通過,說明組件應該沒問題;註冊COM組件及DOTNET項目引用方法均正確,而錯誤出現在調用組件這一步,而COM組件的功能就是通過IP地址及連接埠訪問遠程介面,這裡注意有一個遠程網路連接的工作;上網搜尋類似問題,大部分文章都是組件的許可權問題,我也根據文章所寫設定了組件,IIS訪問使用者等的許可權,都給予了最大許可權,結果還是不行。。快崩潰了。。

  解決方案:被這個問題折磨了幾天之後,公司聯絡了微軟客戶支援,micro給了個方法,查看下IIS6.0裡的應用程式集區的安全性許可權。查看了下,在IIS裡的應用程式集區屬性中,“標識”標籤下有個預設的安全性帳戶“網路服務”即NetWork Service。Network Service 是 Windows Server 2003 中的內建帳戶,其屬於IIS_WPG 組,IIS_WPG 的成員具有適當的 NTFS 許可權和必要的使用者權限,按微軟網站上的文章所說,Network Service 帳戶具有充當 IIS 6 背景工作處理序的進程標識的充足許可權,以及具有訪問網路的許可權。但不知道為什麼,這裡的NetWork Service許可權不夠,造成不能調用組件訪問遠程介面。解決的方法就是將IIS_WPG帳戶設定為讀取與執行、列出檔案夾目錄、讀取,而NETWORK SERVICE則需要完全控制許可權。根據以上方法,我把NetWork Service賦於到Administrator組 ^_||  ,重啟IIS,再運行程式,OK,正常調用組件了~~

  因此如果有朋友再有碰到調用COM組件不能用時,考慮一下應用程式集區的許可權~~

  參考以下文章: http://www.microsoft.com/china/technet/community/columns/insider/iisi1203.mspx



相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.