已经部署了我的网站IIS7.5我发现一个奇怪的现象:当应用程序池标识是留给有ApplicationPoolIdentity
默认情况下(如在推荐的IIS应用程序池标识 ), Ninject
似乎被忽略,因为我得到了下面的错误,同时创造最先控制器:
System.InvalidOperationException:试图创建类型的控制装置时发生错误“..MainController”。 确保控制器具有一个无参数的公共构造函数。 ---> System.DirectoryServices.DirectoryServicesCOMException:出现操作错误。
我试图授予FullAccess
到IIS AppPool\<MySiteAppPool>
文件夹,包含该网站(包括所有子文件夹和文件),但这并没有改变任何东西。
然而,当我设置的应用程序池标识的任何域帐户(即使是一个简单的,没有管理的privilages,以及不会对文件夹的任何访问该网站),它正常工作。
Ninject根据安装设置一个MVC3应用通过NuGet包教程。
我不知道,如果是相关的,网站应该在windows身份验证域联网工作。
所以,唯一的问题似乎与应用程序池标识。 至于我渴望推荐使用的方式,我喜欢有ApplicationPoolIdentity
,而不是域帐户。
可这有什么用连接? 是否有可能混合所有这些结合在一起?
下面是一个与SO类似问题线程: ASP.NET MVC 4 + Ninject MVC 3 =此对象定义无参数的构造 。 然而,在所有要么没有合适的答案在那里。
作为一个已删除的评论所说,我尝试使用NetworkSerive
的身份。 和它的工作正常。 不过,我想这是不超过一个非特权域帐户要好得多。
编辑
突然发现另一相关性:应用程序池标识用于SQL Server上的Windows身份验证,但笔者预计客户端用户的凭据并在那里使用。
根据意见
一致认为,远程SQL Server可以通过模拟的验证的凭据访问。
但是它仍然是不明确的问题是ApplicationPoolIdentity和Ninject什么。
在这个问题的最顶端mentiond文章使我想,这可能由以下事实造成的,即虚拟帐户没有用户配置文件 。 这方面尚不清楚对我来说,作为一个仍然可以使IIS与加载用户配置文件LoadUserProfile
属性。 我得不到的东西,什么是IIS要加载,如果有针对虚拟帐户没有配置文件?
正是在那里说:
IIS不会加载Windows用户配置文件,但某些应用程序可能会利用它反正来存储临时数据。 SQL Express是做这样的应用的一个例子。 然而,用户配置文件必须创建存储无论是在配置文件目录或注册表配置单元的临时数据。 对于网络服务帐户的用户配置文件是由系统创建的,是始终可用。 然而,随着开关独特的应用程序池的身份,没有用户配置文件是由系统创建。 只有标准应用程序池(默认应用和经典.net应用程序池)在磁盘上的用户配置文件。 如果管理员创建一个新的应用程序池没有用户配置文件被创建。
但是,如果你愿意,你可以配置IIS应用程序池通过设置“LoadUserProfile”属性为“true”加载用户配置文件。
我发现serverfault.com以下主题:
我怎样才能活动目录权限分配给默认的应用程序池标识
在那里,它也指出,应用程序池的身份是不能作为网络服务工作,特别是查询AD。