jas*_*nac 16 c# iis permissions wcf iis-7
我正在运行Windows 7,并且通常不是此设置中的开发人员,并且最近在C#中构建了WCF Rest服务,我现在正尝试在本地计算机上部署到IIS.经过多次争论,我设置了应用程序,但是当我导航到应用程序时,我收到一条错误消息:编译错误
描述:编译服务此请求所需的资源时发生错误.请查看以下特定错误详细信息并相应地修改源代码.
编译器错误消息:CS0016:无法写入输出文件'c:\ Windows\Microsoft.NET\Framework64\v4.0.30319\Temporary ASP.NET Files\scom_sibyll\8c0b945e\9329016\App_global.asax.eagmqgcd.dll' - '访问被拒绝."
我尽最大努力搜索网络,并更改了Temporary ASP.NET Files fodler的权限,以允许网络服务帐户拥有完整权限,并对Temp文件夹执行相同操作.它在失败之前复制了许多文件,因此它可能具有写入权限,因此我检查了从源文件夹中读取的权限,这也是有效的.我还注意到它在尝试缓存DLL文件时出现问题,并尝试关闭我的防病毒保护,以及关闭UAC,只是为了看看是否能够找出阻止这种情况发生的原因.我现在的想法很新鲜.有人有什么建议吗?
zcr*_*r70 49
对于那些像我一样在这里看到的人,如果接受的答案无法解决问题,您可以尝试阅读本文:http://lordzoltan.blogspot.com/2011/02/aspnet-2-and-4-default-application -pool.html
总之,当应用程序池用户无权访问%TMP%/%TEMP%文件夹时,似乎有时会显示相同的错误.
您需要授予IIS_IUSRS读取和修改对运行应用程序池的用户的临时文件夹的访问权限.
这可以是应用程序池用户的配置文件中的临时文件夹,例如c:\Windows\ServiceProfiles\NetworkService\AppData\Local\Temp,或者是系统临时文件夹c:\windows\temp.
设置这个解决了我的问题.
Mat*_*ttC 11
听起来像运行WCF服务的帐户无权写入"Temporary ASP.NET Files"目录.
您也可以尝试重新运行regiis.
%windir%\ Microsoft.NET\Framework64\v4.0.30319\aspnet_regiis -i
ASP.NET IIS注册工具(Aspnet_regiis.exe)
在Windows 8/Server 2012上,不再支持aspnet_regiis.我尝试使用Windows功能重新安装:失败.我尝试重新安装IIS:失败.我尝试通过WebPI重新安装:失败.
我通过在Windows Temp Directory上设置ACL来解决了这个问题.
这是一个执行工作的powershell:
$dir = "C:\Windows\Temp"
$acl = get-acl -path $dir
$new = "IIS_IUSRS","Modify","ContainerInherit,ObjectInherit","None","Allow"
$accessRule = new-object System.Security.AccessControl.FileSystemAccessRule $new
$acl.SetAccessRule($accessRule)
$acl | Set-Acl $dir
Run Code Online (Sandbox Code Playgroud)
小智 5
要做的有3个步骤:
1 - check if "Application Pool Identity" is NetworkService
2 - NETWORK_SERVICE account needs full control on:
. C:\Windows\Temp
. C:\Windows\Microsoft.NET\Framework[related framework]\Temporary ASP.NET Files\
3 - restart the IIS
Run Code Online (Sandbox Code Playgroud)
解决了错误
您也可以尝试重新运行regiis."%windir%\ Microsoft.NET\Framework [相关框架]\aspnet_regiis -i"