Silverlight IIS7-从应用程序池读取文件
编辑:我把它弄得比需要的更混乱。忘记这是一个Silverlight客户端。我有一个托管在IIS中的WCF服务,需要访问本地文件系统上的文件。这项服务的消费者将是Silverlight,但我认为这并不重要,应该忽略这一点 我有一个Silverlight应用程序,我在其中托管一个服务。在这个服务中,我希望读取C驱动器根目录中的文本文件(仅用于测试)。我遇到一个异常,无法找到该文件。我认为这是一个权限问题,但我无法理解 我已将我的应用程序池标识设置为NetworkService。我已将.NET信任级别设置为完全(内部)。我甚至还授予NetworkService用户对我试图读取的文本文件的读取权限 该服务需要访问文件系统。正确的方法是什么 谢谢Silverlight IIS7-从应用程序池读取文件,silverlight,iis-7,permissions,filesystems,Silverlight,Iis 7,Permissions,Filesystems,编辑:我把它弄得比需要的更混乱。忘记这是一个Silverlight客户端。我有一个托管在IIS中的WCF服务,需要访问本地文件系统上的文件。这项服务的消费者将是Silverlight,但我认为这并不重要,应该忽略这一点 我有一个Silverlight应用程序,我在其中托管一个服务。在这个服务中,我希望读取C驱动器根目录中的文本文件(仅用于测试)。我遇到一个异常,无法找到该文件。我认为这是一个权限问题,但我无法理解 我已将我的应用程序池标识设置为NetworkService。我已将.NET信任级别
-斯科特首先,把现实生活中不在等式中的东西从等式中去掉。在实际的应用程序中,您不会从C:\中读取数据。因此,值得思考的是,你将从哪里阅读 我建议您的文件将位于网站的
App\u Data
文件夹中。因此,请尝试将一个文件放在那里,然后从服务访问它。您可以通过以下方式解析App_数据物理文件:
string filePath = Path.Combine(HttpRuntime.AppDomainAppPath, "App_Path\SomeFile.txt");
您是从Silverlight应用程序还是从服务读取文件?从服务读取。一切都是从服务器上完成的,困扰我的是“Silverlight应用程序,我在其中托管服务”这一行。您如何从Silverlight客户端访问服务?忘记这是一个Silverlight应用程序。将其视为一个简单的WCF服务,需要从C驱动器上的文件中读取。此服务的消费者将是Silverlight和其他类型的客户端。我想我的问题比我提到Silverlight时所需要的更让人困惑。我之所以试图从C驱动器中阅读,是因为我有几个原因。例如,我必须使用LoadLibrary()加载一个本机dll,并且知道它会在本地驱动器上找到。然而,你的帖子让我想到我可以像其他任何东西一样将这个dll添加到我的应用程序数据中。我会试试看它是否能解决我的问题。谢谢……史葛:你有没有考虑把所有的东西放到Web应用程序文件夹中?