我正在开发一个silverlight应用程序(c#),我需要运行在linux服务器中找到的shell脚本?
anyOne可以帮帮我吗?
答案 0 :(得分: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-client答案 1 :(得分: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);
}
This article will help with setting up your project
Also note that this will only work in Windows, hence the check for ComAutomationFactory.IsAvailable