【问题标题】:C# Application over a Network网络上的 C# 应用程序
【发布时间】:2009-02-02 19:42:29
【问题描述】:

我遇到过一些情况,我被要求将应用程序(C#、.Net 2.0)部署到服务器并且用户需要通过网络测试应用程序。我发现以下内容可以正常工作,除了警告告诉您“嘿,您通过网络运行此程序,您确定要这样做吗?”:

%systemroot%\Microsoft.NET\Framework\v2.0.50727\caspol -m -cg 1.2 -url \\<Path> FullTrust

有没有比上述方法更好的集中应用程序的方法?

【问题讨论】:

  • 为什么会有asp.net-2.0标签?这是一个 winforms/wpf/console 应用吗?
  • 很抱歉。 .net 2.0 标记在那里是因为上面的命令行字符串是为该目录的路径设置的,这就是应用程序所在的运行时间。抱歉标记错误。

标签: c# deployment networking


【解决方案1】:

尝试使用ClickOnce 部署。我们将它用于所有网络部署的应用程序。

【讨论】:

【解决方案2】:

授予 FullTrust 的问题在于 it really really means full trust。如果您的应用具有任何类型的身份/安全控制,授予完全信任将绕过所有这些。

我想否则,您将您的机器“暴露”给从另一台机器运行的文件,因此它们可能会造成损坏,但这并不比在远程机器上运行的任何其他本机 win32 可执行文件差,所以它不是恕我直言。

我建议最好的解决方案是在您用户的机器上简单地安装应用程序。您可以使用 ClickOnce 之类的工具让他们轻松轻松地完成此操作。

【讨论】:

  • 关于完全信任的观点很好,但似乎这是从某种受信任的网络内部运行的,其中(可能)不会发布恶意软件。
  • 是的,如果应用程序需要设计为在部分信任环境或类似环境中工作,那么授予 FullTrust 将绕过这种检查
【解决方案3】:

最好的解决方案可能是签署您的程序集,并将完全信任策略推送到这些程序集的所有客户端计算机。然后,只需通过 UNC 路径从网络共享运行它们,就好像它们是本地的一样。

【讨论】:

  • 我不同意这个解决方案,但我不会因此而对你进行降级。 ClickOnce 是处理此类部署方案的最佳方式,IMO。
  • 通常我会同意(这也是我的第一个想法),但我们不一定在谈论需要部署的东西。此外,为此设置网络服务器的方式可能存在技术原因(或政策)。
  • @DannySmurf:非常好的一点,正如我上面所说的,权限有限,因此我们现在采用的方式。到目前为止,我接受了这两个答案。
【解决方案4】:

您可以查看ClickOnce 部署。通常比在共享上运行更好的部署方式。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-09-05
    • 1970-01-01
    • 2015-03-24
    相关资源
    最近更新 更多