在ASP.Net Bin中执行dll功能不起作用,II7

时间:2010-04-24 21:10:55

标签: asp.net iis binary

我正在开发一个远程控制应用程序,其中客户端(浏览器中的aspx页面)可以请求服务器“启动记事本”(用于测试目的,用于现实生活,关闭灯泡等)。所以我用一个简单的函数创建了一个dll来启动记事本(在服务器端)并将这个dll放在根bin文件夹中。

当aspx页面在ASP.NET开发服务器(从Visual Studio启动)下运行时,它工作正常。但是当我在FireFox浏览器下测试相同的aspx页面时,它没有工作(启动记事本),即使它确实需要相同的功能(我在调试器中逐步完成)。

这是权限问题吗?如何在IIS管理器中进行设置,或者在web.config中进行更好的设置?

请帮忙。

2 个答案:

答案 0 :(得分:2)

是的,这听起来像是一个许可问题。

运行您的站点的IIS 7中的应用程序池可能使用默认标识,这是最严格的标识。您可以通过右键单击应用程序池(可能称为DefaultAppPool)并选择“高级设置”来更改IIS管理器中的标识。从那里将Identity值更改为Local Service或Network Service。如果这些都不起作用,那么使其成为本地系统应该允许您的页面工作。

我假设Visual Studio集成的Web服务器在您在计算机上登录的帐户的上下文中运行,这可能具有更多权限。

答案 1 :(得分:0)

当你说:

  

它不起作用(启动记事本)

您是通过例​​外表示还是未看到记事本窗口打开。如果是权限问题,我希望你会得到一个例外。克里斯说得对,他说:

  

IIS 7中的应用程序池   您的网站可能正在运行   使用默认标识,即   最具限制性的。

  

我假设Visual Studio已集成   Web服务器在上下文中运行   您登录的帐户   机器,可能有很多   更多权利。

如果这是权限问题,他就是对的。但是,您运行的用户(在Visual Studio中未调试时)很可能无法访问登录用户的桌面。也许您应该尝试使用不需要与桌面交互的应用程序进行测试。