0

我正在开发一个 silverlight 应用程序 (c#),我需要运行在 linux 服务器中找到的 shell 脚本?

任何人都可以帮助我吗?

4

2 回答 2

1

@technosaurus是对的。您可以使用 cgi(perl、ruby 等)或简单的 http(s) 请求到您的服务器。喜欢:http://your-server-address/execute.php并使用 php(或其他)命令shell_exec或 ruby​​ commands,或者您想要处理脚本输出并将其发送给用户的内容。


示例:
应用程序(ironruby):

host = "your_server_address"
wclient = System::Net::WebClient.new
wclient.download_string_completed{|wc, e|
    # do something with e.Result
}
wclient_data.download_string_async(System::Uri.new("#{host}/get_users_dirs.php")))

get_users_dirs.php:

print shell_exec("bash ./get_users_dirs.sh");

get_user_dirs.sh

ls /home  

或者您可以像PuTTY一​​样开发自己的 ssh 客户端

于 2013-06-08T09:08:01.007 回答
0

也许在Out of Browser模式下运行是您正在寻找的答案。

您可以从 OOB 调用 COM,其中您的 Silverlight 程序集被配置为以提升的权限运行 Out Of Browser。从那里你几乎可以做任何事情。

例如:

if (Application.Current.HasElevatedPermissions && ComAutomationFactory.IsAvailable)
{
    dynamic cmd = ComAutomationFactory.CreateObject("WScript.Shell");
    cmd.Run(@"c:\windows\notepad.exe", 1, true);
}

本文将帮助您设置项目

Also note that this will only work in Windows, hence the check for ComAutomationFactory.IsAvailable

于 2013-02-13T17:39:27.857 回答