2009-02-23 54 views
0

我有一個簡單的,如果不是原始的C++/CLI .NET 2.0類庫。它用於爲Web服務打包一些C++遺留代碼。以下事實似乎是正確的:加載web服務時System.IO.FileNotFoundException

  1. 原始C#測試程序調用類庫,它的工作原理。
  2. 如果類庫沒有引用我們的代碼庫中的任何模塊,它可以像Web服務一樣工作。也就是說,我加載Web服務並調用這些方法並接收適當的響應。
  3. 與我們的代碼基庫中的調用替換複製和粘貼代碼的同一時刻,Web服務停止加載。我得到System.IO.FileNotFoundException消息。

問題:我找不到找不到找不到文件名的地方。

我對它進行了搜索並給我的計算機上的某些ASP.NET用戶授予了一些權限。我將我們庫的所有DLL複製到安裝Web服務的同一目錄中。我在IIS日誌,事件日誌等搜索 - 沒有哪裏可以找到模塊的名稱,防止Web服務出現。

任何有關此事的幫助將不勝感激。

鮑里斯

+0

對不起,這是虛驚一場。爲系統路徑添加必要的路徑解決了問題。 – 2009-02-23 09:19:50

回答

0

確保所有依賴的DLL都在路徑中(Path不是指組件所在的目錄,因爲ASP.net將您的程序集複製到臨時文件夾中,而是將其包含在System path環境變量中)。

+0

是的,這確實是罪魁禍首。 – 2009-02-23 09:56:38

0

您要更換哪些電話?原始代碼是否可以優雅地處理丟失的文件(這可能甚至不重要),而您的代碼不會?

+0

安德魯,原來的代碼是簡單的字符串處理例程。但愚蠢的我沒有意識到DLL需要在系統路徑中,因爲ASP.NET運行時會複製所有內容並從複製位置運行它。 – 2009-02-23 09:21:11

0

爲您對asp.net帳戶所做的iusr帳戶添加相同的權利。

+0

鑑於如果編譯的服務運行不同,它似乎並不重要。但我仍然解決了這個問題。 謝謝! – 2009-02-23 09:23:46

相關問題