2011-10-13 50 views
1

編輯:我做了這個比它需要更混亂。忘記這是一個Silverlight客戶端。我有一個WCF服務託管在IIS中,需要有權訪問本地文件系統上的文件。這項服務的消費者將是Silverlight,但我認爲這並不重要,應該讓這種情況不再發生。IIS7 - 從應用程序池中讀取文件

我有一個Silverlight應用程序,我託管一項服務。在此服務中,我想讀取C驅動器根目錄中的文本文件(僅用於測試)。我收到了一個拋出的文件無法找到的異常。我認爲這是一個權限問題,但我無法弄清楚。

我有我的應用程序池標識設置爲NetworkService。我將.NET Trust Level設置爲Full(內部)。我甚至在授予讀取權限給我想要讀取的文本文件上的NetworkService用戶時。

該服務需要訪問文件系統。什麼是正確的方法來做到這一點?

感謝,

斯科特

+0

您是從Silverlight應用程序還是從服務中讀取文件? –

+0

從服務。一切都從服務器完成。 – Scott

+0

這是「我託管服務的Silverlight應用程序」行,這讓我感到困擾。你如何從Silverlight客戶端訪問服務? –

回答

0

首先拿出方程的東西會不會是現實生活中的公式所示。在真正的應用程序中,您不會從C:\讀取。所以它值得考慮你將從哪裏閱讀。

我建議您的文件將在網站的App_Data文件夾中。因此,請嘗試將文件放在那裏,然後從服務中訪問它。您可以通過以下方式解決App_Data物理文件:

string filePath = Path.Combine(HttpRuntime.AppDomainAppPath, "App_Path\SomeFile.txt"); 
+0

我試圖從C盤讀取的原因是因爲我有幾個原因。例如,我必須加載一個本地dll usig LoadLibrary(),並且知道它會在本地驅動器上找到。然而,你的文章讓我想到,我可以像任何其他東西一樣將這個DLL添加到我的App_Data中。我會試試看看它是否能解決我的問題。謝謝... – Scott

+0

@scott:你是否考慮將全部內容放在web apps bin文件夾中? – AnthonyWJones