希望你能提供帮助。
我们有一个Web应用程序(.NET 2.0),它有一些自定义代码,用于在上传文件时戳一个Windows服务。我们使用以下代码发出命令:
Dim serviceName As String = "Processor Service 1.0"
sc = New ServiceController(serviceName)
sc.ExecuteCommand(200)
在独立应用程序中运行此代码可以正常工作但在网站运行时会抛出拒绝访问错误。代码在IIS 6中正常工作。
我们正在与用户一起使用应用程序池,并且位于Admin组中。我认为这与IIS有关,但现在确定是什么。
希望你们能帮忙。
由于
答案 0 :(得分:1)
与本地服务交互所需的权限非常高。您的asp.net应用程序可能以匿名(本地帐户IUSR)或“应用程序池标识”运行。您可以在IIS(应用程序池)中设置应用程序,以使用具有更高权限的其他帐户。
在IIS Admin中,在“IIS”,“身份验证”部分下,您需要启用更强大的身份验证方法。如果启用了“匿名身份验证”,则检查设置“编辑”以查看它是否作为IUSR或“应用程序池标识”运行。您可以在此处确定或设置ASP.NET应用程序正在使用的帐户(和权限集)。
我觉得我应该强烈警告不要提升IIS和匿名用户的权限。这将为您的系统创建一个非常危险的后门。来自bgs264的建议是非常好的:建立一个单独的服务(或预定的进程)来监视文件上传,或修改现有的服务以使用文件监视器来监视上传的文件。它可以在更高的权限集下运行,并且与IIS隔离得更远。授予IIS或其应用程序池的管理员权限就像是在乞求麻烦。