我试图从名为'SomeAppPool'的'AppPool'启动一个使用'ApplicationPoolIdentity'的网站,当我启动网站时,我收到以下错误:
当前标识(IIS_APPPOOL\SomeAppPool)没有对'c:\ WINDOWS\Microsoft.NET\Framework\v4.0.30319\Temporary ASP.NET Files'的写访问权限
我正在Windows 8下启动Visual Studio 2012中的"使用本地IIS Web服务器"(没有附带调试器)的网站.
我注意到的第一件事是"Temporary ASP.NET Files"文件夹甚至不存在,因此没有任何设置安全权限.
第二个问题是,即使有一个文件夹,我会设置哪些权限?我假设我不应该为通过'ApplicationPoolIdentity'创建的每个用户设置权限.对?
我看到的当前解决方案只是建议将用户设置为"网络服务",但这似乎打破了引入"ApplicationPoolIdentity"的网站的隔离.
我有一个我用'NSubstitute'模拟的接口,它包含返回concreate类的属性,即返回值不是接口.例如
public interface ISomething
{
SomeObj First { get; }
SomeObj Second { get; }
}
Run Code Online (Sandbox Code Playgroud)
'SomeObj'具体类有一个默认构造函数,但'NSubstitute'总是为这些属性返回'null'.类本身不在我的控制之下,所以我不能简单地从接口派生它.
'NSubstitute'可以嘲笑这些类型的属性吗?或者有没有办法覆盖行为?否则我必须在测试之前手动初始化模拟,这可能是很多代码(即使它通过常用方法重用).
也许有一个更简单的解决方案,我已经过度了?
我很想知道.NET是否支持在运行时对方法调用(或属性调用)进行任何形式的动态拦截.也就是说,您是否可以在没有静态编译信息(如接口(沿着CORBA DII(链接文本)或COM的IDispatch的行)的情况下拦截对象的调用.
如果没有,C#4.0中新的"动态类型对象"功能是否会在这方面有所帮助.