代码之家  ›  专栏  ›  技术社区  ›  Wayne Lo

在ASP.NET bin中执行dll函数不工作,II7

  •  0
  • Wayne Lo  · 技术社区  · 14 年前

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

    当ASPX页在ASP.NET开发服务器(从Visual Studio启动)下运行时,它工作得很好。但是当我在火狐浏览器下测试相同的ASPX页面时,它没有工作(启动记事本),尽管它确实调用了相同的功能(我在调试器中进行了介绍)。

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

    请帮忙。

    2 回复  |  直到 14 年前
        1
  •  2
  •   Chris Tybur    14 年前

    是的,这听起来像是权限问题。

    您的站点运行所使用的IIS 7中的应用程序池可能使用了最严格的默认标识。您可以通过右键单击应用程序池(可能称为DefaultAppPool)并选择高级设置来更改IIS管理器中的标识。从那里将标识值更改为本地服务或网络服务。如果两者都不起作用,则使其成为本地系统应该允许您的页面工作。

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

        2
  •  0
  •   drs9222    14 年前

    当你说:

    它不工作(启动记事本)

    你的意思是通过一个例外还是你没有看到一个记事本窗口打开。如果这是一个权限问题,我希望你会得到一个例外。克里斯说:

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

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

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