C# 如果从远程(仅从服务器)调用,IIS将无法写入文件
我正在Windows Server 2012 R2上的IIS上运行web api 应用程序有一个控制器,在get请求时,该控制器将写入网络共享上的文件 如果我从服务器上的浏览器访问该站点,它可以正常工作,但是如果我从自己的计算机访问该站点,我会收到一个异常,表明我没有写入该文件的权限 用户根据网络广告进行身份验证,我在计算机和服务器上使用的是同一用户 如果我从服务器调用该请求,IIS似乎正在以其他用户的身份处理该请求,但我一直无法确定如何更改该请求,以便也可以从其他主机写入该文件 给出异常的代码正在使用StreamWriterC# 如果从远程(仅从服务器)调用,IIS将无法写入文件,c#,.net,iis,file-permissions,C#,.net,Iis,File Permissions,我正在Windows Server 2012 R2上的IIS上运行web api 应用程序有一个控制器,在get请求时,该控制器将写入网络共享上的文件 如果我从服务器上的浏览器访问该站点,它可以正常工作,但是如果我从自己的计算机访问该站点,我会收到一个异常,表明我没有写入该文件的权限 用户根据网络广告进行身份验证,我在计算机和服务器上使用的是同一用户 如果我从服务器调用该请求,IIS似乎正在以其他用户的身份处理该请求,但我一直无法确定如何更改该请求,以便也可以从其他主机写入该文件 给出异常的代码
您需要启用模拟。请参见此链接我启用了模拟,但结果相同。我可以从服务器生成文件,但不能从自己的计算机生成。但是如果不启用模拟,当我尝试访问文件系统时,IIS使用的是什么上下文?因为它必须不同于位于服务器上或从另一台计算机访问服务器的两种使用情形。IIS使用应用程序池中给定的标识。默认情况下,它设置为DefaultAppPool。看见
using (var writer = new StreamWriter(_filePathName))
{
writer.WriteLine(GetSetting("PROTECTED_KMDHeader"));
writer.Close();
}