2013-08-02 57 views
0

我希望別人遇到這個問題,因爲它讓我瘋狂。我有一個Web服務需要使用我在PATH環境變量(通過DLLImport)中指定的文件夾中的DLL。當我在開發服務器中運行該服務時,它可以毫無問題地工作,如果我在控制檯應用程序中運行該方法,它可以毫無問題地工作。當我將服務發佈到我的IIS並嘗試使用我得到的方法時:WebService不從PATH環境變量加載dll

無法加載DLL'WORKFLOW.DLL':無法找到指定的模塊。

我甚至創造出了一個WebMethod返回指定的環境變量來進行測試:

[WebMethod] 
public String GetEnv(String variable) 
{ 
    return Environment.GetEnvironmentVariable(variable); 
} 

,這將返回正是我需要它,從IIS中運行,即使,但仍然是其不加載的DLL 。我一直在尋找所有,似乎無法找到任何人與此問題。

任何幫助將不勝感激。

回答

0

這是一個安全問題。它不會讓你像這樣加載DLL。 您需要在您的Web App中添加引用到這些dll,然後這些目標dll纔會被複制到bin文件夾中,您應該沒問題。或者那些DLL未在GAC中註冊,並且存在問題。

+0

我的DLL是非COM和非託管的,我有其他選擇嗎? –

+0

另外,如果它的安全問題爲什麼會說「指定的模塊找不到」而不是「訪問被拒絕」或類似的東西? –

+0

安全問題可能是應用程序正在運行的IIS用戶無法訪問DLL所在的文件空間。也許。 – raddevus