2009-09-02 41 views
2

WCF服務有一個方法(假設TestMethod的)中,我嘗試創建一個文件流是這樣的:問題而閱讀WCF服務的XML文件

  System.IO.FileStream fs = new System.IO.FileStream(@"D:\Test.xml", System.IO.FileMode.Open); 

我的客戶和服務是相同的解決方案。

當客戶端向TestMethod的呼叫(暴露Web服務),它將給這個錯誤:

訪問路徑「d:\ DXDirectoryAuth.xml」被拒絕。

請幫助!

回答

3

您是否試過:

System.IO.FileStream fs = new System.IO.FileStream(@"D:\Test.xml", System.IO.FileMode.Open, System.IO.FileAccess.Read); 

FileStream()的默認構造函數要求讀取和寫入權限。

+0

這不是很直觀。更改文件訪問模式也解決了我的問題。謝謝! – Doug 2012-05-17 15:38:28

0

安全!

的原因是你想,你已經託管WCF服務的目錄以外的訪問文件位置...

你要麼不得不授予WCF權限下運行的帳戶該目錄或將該文件移動到託管WCF服務的目錄\子目錄中。

奧利

+0

感謝奧利..可以請你指導我如何才能做到這一點? 我的服務文件夾是「我的服務」,我把xml文件放在MyService文件夾中..但仍然是這個錯誤 – 2009-09-02 09:50:45

8

好吧,如果你已經把文件中的目錄或WCF服務的子目錄,你應該能夠訪問該文件沒有任何權限問題。

現在的問題是如何在嘗試訪問該文件?

你或許應該得到的服務的當前目錄則相對文件位置追加到當前目錄下,然後嘗試打開該文件是這樣的:

var appPath = System.Web.Hosting.HostingEnvironment.ApplicationPhysicalPath; 
bodyFile = Path.Combine(appPath, @"templates\email.txt"); 

var body = File.OpenText(bodyFile).ReadToEnd(); 

HTH

奧利