row*_*age 7 c# asp.net client-side
我有一个应用程序,我试图在Intranet上运行.在我的机器上它工作得很好(着名的遗言)但是当我把它放到服务器上时,它没有用.当我看到"系统找不到指定文件"错误时,我认为它必须是尝试运行客户端计算机上的程序.
是的,如果浏览器中的任何应用程序可以在客户端计算机上运行可执行文件,那将是一场安全噩梦.内联网有什么不同吗?它将运行的几台计算机都具有相同版本的IE和.NET,它们将运行,并且它们都具有运行所需的.exe.
以下是该项目的概述:
任何人都可以帮我解决如何做到这一点(或者至少让我知道这是不可行的)?
如果您将站点置于 IE 受信任区域或 Intranet 区域中,则以下 Javascript 将正常工作。我在内部使用这个将我们的 PC 支持数据库搜索链接到我们的远程屏幕控制软件:
<script type="text/javascript" language="javascript">
function runDameWare(strHostname, blControl) {
var objShell = new ActiveXObject("Wscript.Shell");
var strCommand = "C:\\Program Files\\Dameware\\dwrcc.exe -c: -h: -m:";
strCommand += strHostname;
if (blControl) {
strCommand += " -v:";
}
objShell.Exec(strCommand);
}
</script>
Run Code Online (Sandbox Code Playgroud)
我的理解是,将本地程序中的工作结果上传到Web服务器可以使用该类来完成HttpWebRequest,如本文所示:
http://forums.asp.net/p/1482778/3464854.aspx
编辑:这就是我调用上述函数的方式。基本上我只是渲染一个<a>带有属性的普通元素onclick。可能有一种更干净的方法来做到这一点,但它有效:
标记:
<asp:TemplateField>
<ItemTemplate>
<%# RenderDameWareLinks(Eval("ResourceName"))%>
</ItemTemplate>
</asp:TemplateField>
Run Code Online (Sandbox Code Playgroud)
代码:
Protected Function RenderDameWareLinks(ByVal strHostname As String) As String
Dim strFullLink As String = String.Empty
Dim strViewLink As String = String.Empty
strFullLink = "<a onclick=""runDameWare('" & strHostname & "', false);"">"
strFullLink &= "<img alt=""Connect using DameWare"" src=""Image/dameware1.gif"" style=""padding: 2px;"" />"
strFullLink &= "</a><br/>"
strViewLink = "<a onclick=""runDameWare('" & strHostname & "', true);"">"
strViewLink &= "<img alt=""Connect (View Only) using DameWare"" src=""Image/dameware2.gif"" style=""padding: 2px;"" />"
strViewLink &= "</a>"
Return strFullLink & strViewLink
End Function
Run Code Online (Sandbox Code Playgroud)