【问题标题】:System.Diagnostics.Process.Start not work with IIS, but on ASP.NET Development ServerSystem.Diagnostics.Process.Start 不适用于 IIS,但适用于 ASP.NET 开发服务器
【发布时间】:2010-05-11 20:29:38
【问题描述】:

我正在使用 VS2008 C# 并在我的本地 XP Pro PC 上使用本地 IIS 进行测试,我编写了一个 Web 服务来调用第三方软件 .exe 文件,以使用 svn checkout 命令将数据插入到使用系统的文件夹中.Diagnostics.Process.Start 。当我使用 VS2008 内置 ASP.NET 开发服务器(http://localhost:2999/MyServices/MyServices.asmx)时,相同的代码确实有效。但是当我使用 IIS 普通 URL(http://developer/MyServices/MyServices.asmx) 在 web 服务上运行 Process.Start 时,它只是闹鬼,没有做任何事情。请发送一个示例程序。

【问题讨论】:

    标签: c# asp.net


    【解决方案1】:

    这很可能归结为用于运行代码的用户。使用内置服务器时,它以与运行 Visual Studio 的用户相同的用户身份运行。在 IIS 中,它将以 MACHINENAME\ASPNET 用户身份运行。

    如果您启动的进程无法以 MACHINENAME\ASPNET 用户身份执行,则它在 IIS 中托管时将无法工作,除非您更改配置以更改其运行身份。请参阅this 页面,了解有关 IIS 中用户的用途的更多信息。

    【讨论】:

    • 感谢您的回答,但我更改了 然后它也不会工作。而且我不知道如何使用 HttpContext Windows Identity Thread 变量,请举例说明我对您的谦虚要求。
    • @subbu,您确实需要了解有关 ASP.NET 模拟的更多信息。如果现在为您的 Web 应用程序启用匿名访问,则使用 IUSR 帐户执行 exe,如果此 exe 需要更多权限,它当然会失败。
    • 那么如何减少IUSR机器账号的权限,现在使用XP。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-08-26
    • 1970-01-01
    • 1970-01-01
    • 2012-10-05
    • 2020-02-19
    相关资源
    最近更新 更多