Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/.net/25.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 在.NET将文件写入文件共享时拒绝访问_C#_.net_File_Iis - Fatal编程技术网

C# 在.NET将文件写入文件共享时拒绝访问

C# 在.NET将文件写入文件共享时拒绝访问,c#,.net,file,iis,C#,.net,File,Iis,我有一个web服务正在尝试将文件写入文件共享 iis中站点的应用程序池正在作为自定义域帐户运行:“域\域帐户” 我是在这样的假设下运行的,希望当代码试图编写文件时,它将使用“domain\domainaccount”用户来编写 执行以下代码行会产生错误:对路径[filename]的访问被拒绝 FileStream-stream=File.Create(文件名、结果、长度) 我已确认“domain\domainaccount”帐户可以访问[filename],它是文件的完整路径,包括文件名。我甚至

我有一个web服务正在尝试将文件写入文件共享

iis中站点的应用程序池正在作为自定义域帐户运行:“域\域帐户”

我是在这样的假设下运行的,希望当代码试图编写文件时,它将使用“domain\domainaccount”用户来编写

执行以下代码行会产生错误:
对路径[filename]的访问被拒绝

FileStream-stream=File.Create(文件名、结果、长度)

我已确认“domain\domainaccount”帐户可以访问[filename],它是文件的完整路径,包括文件名。我甚至从共享结构的最顶层为帐户提供访问权限,而不仅仅是文件需要写入的特定文件夹。事实上,如果我以“域\域帐户”的形式运行记事本,我可以将文件保存到该确切位置

我可能做错了什么?是否不是使用域帐户写入文件?如果没有,我可以改变一些东西,使它这样做吗


我应该注意,如果我登录到iis服务器并从那里运行web服务,我不会收到拒绝访问消息,文件也会被创建。

我同意您的看法,它应该使用应用程序池中定义的凭据运行。如果查看服务器上任务管理器中的w3wp.exe,它使用的是哪个标识?有一些关于正确配置身份的好信息。在该名称下有两个进程(此服务器上有多个站点),但如果它们确实显示了我正在使用的“domain\domainuser”帐户,则有一个进程。我阅读了这篇文章,其中谈到了使用applicationpoolidentity和networkservice,但是没有提到使用自定义域帐户的设置。此iis设置和帐户设置不是新设置,它们已投入生产两年,但是,这只是我第一次尝试将文件写入网络共享。该帐户是否具有域管理员权限?如果没有,您能否授予it域管理员权限(可能只是暂时的),看看这是否有帮助?如果有,但您不想让它拥有域管理员权限,请尝试为该帐户提供一些权限,这些权限可以通过控制面板-管理工具-本地安全策略-本地策略-用户权限分配,然后看看这是否是神奇的咒语。因此,我们发现iis是通过web用户的凭据传递到文件共享的,而不是使用应用程序池的凭据。不确定iss如何确定是通过应用程序池自定义帐户传递用户凭据还是使用应用程序池自定义帐户。我同意您的看法,它应该使用应用程序池中定义的凭据运行。如果查看服务器上任务管理器中的w3wp.exe,它使用的是哪个标识?有一些关于正确配置身份的好信息。在该名称下有两个进程(此服务器上有多个站点),但如果它们确实显示了我正在使用的“domain\domainuser”帐户,则有一个进程。我阅读了这篇文章,其中谈到了使用applicationpoolidentity和networkservice,但是没有提到使用自定义域帐户的设置。此iis设置和帐户设置不是新设置,它们已投入生产两年,但是,这只是我第一次尝试将文件写入网络共享。该帐户是否具有域管理员权限?如果没有,您能否授予it域管理员权限(可能只是暂时的),看看这是否有帮助?如果有,但您不想让它拥有域管理员权限,请尝试为该帐户提供一些权限,这些权限可以通过控制面板-管理工具-本地安全策略-本地策略-用户权限分配,然后看看这是否是神奇的咒语。因此,我们发现iis是通过web用户的凭据传递到文件共享的,而不是使用应用程序池的凭据。不确定iss如何确定是否应通过或使用应用程序池自定义帐户传递用户凭据。