我有一个WCF服务作为我正在处理的客户端/服务器应用程序的一部分。用户单击客户端中的按钮,并调用该服务生成文件,然后将该文件导出到网络共享。
这显然在开发中工作正常,但当放在服务器上时,我会不断收到以下消息:
Access to the path '\\servername\folderpath\folder\filename.ext' is denied
远程文件夹具有非常宽松的权限 - 每个人现在都可以完全控制此文件夹。该服务还在Active Directory帐户下运行,并且该用户还被授予对该文件夹的完全控制权。在搜索SO和其他网站时,这似乎是常见的失败,或者问题与asp.net和IIS有关。这是一个Windows服务托管服务。
以下是我相当简单的代码示例:
// export the file to path
string theFileContents = "why wont this save?";
string theFilePath = System.Configuration.ConfigurationManager.AppSettings["filelocation"];
using (StreamWriter file = new StreamWriter(theFilePath + accountNumber + ".ext"))
{
file.WriteLine(theFileContents);
file.Close();
}
以下是我在app.config中设置的方法:
<add key="filelocation" value="\\server\folderpath\folder\"/>
我很确定如果我更新了我的客户端以接收字符串并将其写入共享中的文件,那么由于此设置(因为它在开发中,或者当服务在我的帐户下运行时)在VS2010的调试中) - 但我真的不希望它必须去旅行 - 只是从服务器到服务器。