2011-10-13 40 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