阻止.NET写入C:\ Windows\Temp

Jos*_*osh 5 .net permissions web-services

我有一个C#应用程序,我正在尝试推送到分布式网络.应用程序在本地(一如既往)工作正常,但当我将其推送到网络时,它不起作用,因为它无法写入C:\ Windows\Temp目录.我实际上并没有调用任何写入该目录的代码,但我认为它是由我调用webservice引起的,给出以下异常:

无法生成临时类(result = 1).错误CS2001:找不到源文件'C:\ WINDOWS\TEMP\cyalinh1.0.cs'错误CS2008:未指定输入'.有关更多详细信息,请参阅InnerException.

有没有办法阻止.NET写入Temp目录?它是.config文件中的设置吗?

UPDATE

可以使用SGEN来阻止从Web服务创建那些动态创建的类吗?

Yaa*_*lis 4

似乎 Web 服务需要对 %SystemRoot%\Temp ( MSDN ) 的读/写权限。

这里

如果您运行的是 ASP.NET 2.0 或更高版本,则可以使用以下命令分配所需的权限:

aspnet_regiis -GA MachineName\Account
Run Code Online (Sandbox Code Playgroud)

这篇博文包含有关如何更改用于此目的的 SystemRoot\Temp 文件夹位置的说明(以及有关如何使用 Reflector 确定 web.config 中的设置以针对此类情况进行设置的说明)