c# - 在 IIS 7 中启动应用程序时出现 "CS0016: Could not write to output file"错误

标签 c# wcf iis iis-7 permissions

我运行的是 Windows 7,并且通常不是此设置中的开发人员,并且最近在 C# 中构建了一个 WCF Rest 服务,我现在正尝试将其部署到本地计算机上的 IIS。经过多次争论之后,我设置了应用程序,但是当我导航到该应用程序时,我收到一条错误消息: 编译错误

Description: An error occurred during the compilation of a resource required to service this request. Please review the following specific error details and modify your source code appropriately.

Compiler Error Message: CS0016: Could not write to output file 'c:\Windows\Microsoft.NET\Framework64\v4.0.30319\Temporary ASP.NET Files\scom_sibyll\8c0b945e\9329016\App_global.asax.eagmqgcd.dll' -- 'Access is denied. '

我已尽我所能搜索网络,并更改了 Temporary ASP.NET Files fodler 的权限以允许网络服务帐户拥有全部权限,并对 Temp 文件夹执行了相同的操作。它在失败之前复制了一些文件,所以它大概有写权限,所以我检查了从我的源文件夹中读取的权限,这也能正常工作。我还注意到它在尝试缓存 DLL 文件时出现问题,并尝试关闭我的防病毒保护以及关闭 UAC,只是想看看我是否能找出阻止这种情况发生的原因。我现在没有想法了。有人有什么建议吗?

最佳答案

对于像我一样看这里的人,如果接受的答案不能解决问题,您可以尝试阅读这篇文章: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 的系统临时文件夹。

设置这个解决了我的问题。

关于c# - 在 IIS 7 中启动应用程序时出现 "CS0016: Could not write to output file"错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5300389/

相关文章:

c# - WCF - 发布 JSON 对象

wcf - 是什么导致 Azure 服务总线中继 WCF 服务抛出 AddressAlreadyInUseException

c# - IIS 上的 WCF 服务。如何摆脱 URL 路径中的 "Service.svc"组件?

IIS6 和 .Net 4.5?

c# - 如何从 C# 类生成 angularjs 模型

c# - 在 form.show 之后让主线程在按下按钮时执行代码

c# - 变量命名讨论 : C# vs JavaScript?

c# - 在C#交互窗口中执行私有(private)方法

asp.net-mvc - IIS 8.x 虚拟目录上的 Angular 应用程序具有奇怪的 URL 行为

asp.net - 如何在 IIS 7 上设置子域