我一直對目前在IIS上承載的WCF服務。我需要讓WCF服務訪問wwwroot文件夾以外的目錄。目錄訪問一個WCF服務託管在IIS
我說得對假設中的wwwroot以外該目錄訪問僅限於WCF在IIS上託管的應用程序,因爲它會爲託管在IIS的ASP.Net應用程序的限制?
如果是這樣的話,是什麼讓WCF服務acccess wwwroot文件之外的一組文件夾的最安全的方法?
順便說一句 - 我在混合交通服務的模式,而不是ASP.Net兼容模式下運行。
我一直對目前在IIS上承載的WCF服務。我需要讓WCF服務訪問wwwroot文件夾以外的目錄。目錄訪問一個WCF服務託管在IIS
我說得對假設中的wwwroot以外該目錄訪問僅限於WCF在IIS上託管的應用程序,因爲它會爲託管在IIS的ASP.Net應用程序的限制?
如果是這樣的話,是什麼讓WCF服務acccess wwwroot文件之外的一組文件夾的最安全的方法?
順便說一句 - 我在混合交通服務的模式,而不是ASP.Net兼容模式下運行。
文件訪問是怎麼回事基礎上,確定託管服務的應用程序池受到限制。您的服務將能夠訪問應用程序池標識可以訪問的任何文件,以確定它是否位於IIS網站的根目錄中。如果你想使用類似Server.MapPath的相對路徑訪問網站根目錄中的文件,那麼你必須以ASP.Net兼容模式運行你的WCF服務。與ASP.Net兼容模式下WCF詳情請參見下列頁:
我認爲最好的辦法是爲您服務的另一個應用程序池,併爲其分配一個專門創建的帳戶作爲新的應用程序池的標識。然後將帳戶所需的權限授予您需要訪問的文件夾和文件。如果要使用相對路徑引用外部文件夾,可以將該外部文件夾設置爲該網站的虛擬目錄。
謝謝你的建議Pencho。我想我必須在ASP.Net兼容模式下使用虛擬目錄來運行WCF服務,不是嗎?我目前正在混合傳輸模式下運行它。 – GrandMasterFlush 2011-12-23 10:19:42
是的,要使用虛擬目錄和相對路徑,您必須在ASP.Net兼容性模式下運行。 – 2011-12-23 11:20:09
謝謝你的幫助克里斯。 – GrandMasterFlush 2011-12-23 12:29:53