C# 通过网络运行.net应用程序
我需要使.NET应用程序能够在网络共享上运行,问题是这将在客户端的网络共享上运行,因此路径将不相同 我已经快速查看了VisualStudio2008中的ClickOnce和发布选项,但是它需要一个特定的网络共享位置——我假设当它执行任务时,这个位置存储在某个地方 目前,这项工作是用一个旧的VB6应用程序完成的,因此绕过了所有这些安全问题,但该应用程序编写得很糟糕,几乎不可能维护,因此它确实需要去做 是否可以将域控制器设置为允许执行此特定的.NET应用程序?任何其他选择都会受到欢迎,因为我想得到这个小应用程序是非常关键的业务 我应该说,客户机网络是学校,因此经常像客户机一样被锁定,因此手动向每个客户机添加异常是一个很大的禁忌C# 通过网络运行.net应用程序,c#,.net,security,networking,clickonce,C#,.net,Security,Networking,Clickonce,我需要使.NET应用程序能够在网络共享上运行,问题是这将在客户端的网络共享上运行,因此路径将不相同 我已经快速查看了VisualStudio2008中的ClickOnce和发布选项,但是它需要一个特定的网络共享位置——我假设当它执行任务时,这个位置存储在某个地方 目前,这项工作是用一个旧的VB6应用程序完成的,因此绕过了所有这些安全问题,但该应用程序编写得很糟糕,几乎不可能维护,因此它确实需要去做 是否可以将域控制器设置为允许执行此特定的.NET应用程序?任何其他选择都会受到欢迎,因为我想得到这
抱歉,我忘了提到我们目前只限于.NET2.0,我们正计划将其升级到4.0,但这不会立即发生 您可以使用UNC路径吗
\\\server\folder\app.exe?
如果我没有弄错的话,也许这里的链接可以帮你省去麻烦,你担心驱动器号和处理UNC约定?请看一下上面的内容,其中包含有关如何在运行时动态映射到UNC共享的代码。问题在于与.Net framework相关的安全性。不幸的是,我在这方面没有太多经验,但以下链接之一可能会有所帮助:
- 最后但并非最不重要的是:
\\someserver\randomfolder
)指定是否排除 中的部署提供程序URL 部署清单。从 VisualStudio2008SP1,部署 提供程序URL可以从中排除 适用于以下情况的清单: 应用程序更新应来自 发生故障时位置未知 初次出版。之后 应用程序已发布,将更新 从任何地方检查 应用程序是从安装的
清单中的部署位置必须与部署位置匹配。您必须使用UNC路径。这应该没什么问题。ClickOnce应用程序在用户配置文件下安装,无需管理权限。它只需要对部署应用程序的文件共享进行读取访问 最好的解决方法是为每个学校创建部署,并让您设置UNC路径,因为这样您就可以向他们发送一个签名部署,他们可以将其放在文件共享中。但如果有很多学校参与的话,这是一个主要的p.i.t.a 下一个答案是:谁实际将应用程序部署到每个学校,即将其放在文件共享中?有什么管理员吗 我建议(取决于它是谁)给他们mageUI.exe,教他们如何更改部署URL并重新签署清单(它将提示)。他们重新签署部署的问题是他们必须拥有证书。你可以给每所学校自己的证书(使用VS中的“创建考试证书”按钮创建,或者使用MakeCert创建一个[询问是否需要更多信息]),或者给他们所有相同的密钥(不是很安全,但是,嘿,这会起作用) 如果您至少更新到.NET 3.5 SP-1,则无需对应用程序进行签名即可部署该应用程序。(关于.NET 2.0,我并没有给你带来困难,我的公司也处于同样的地位,我只是在传递这些信息。) 如果这些计算机可以访问internet,您可能会找到一个地方,以每月10美元的价格托管部署,并将其推送到Web服务器,让它们从那里安装。然后每个人都会同时获得更新,您只需将更新部署到一个位置。假设他们可以上网,这将是最简单的解决方案 机器人网络
我认为您的答案在于编辑/管理域策略,因此,serverfault.com可能是寻找答案的更好网站。感谢您的建议,我现在也询问了serverfault。ClickOnce是专为此使用场景而设计的。再看一看。你知道每个学校将部署的UNC路径吗?不,UNC路径可以是任何东西(取决于学校)-因此,当发布过程要求时,我会担心。可能会对代码访问安全性进行配置,以允许从这样的路径执行…不,我是说,要进行clickonce部署VS2008,需要在发布向导中使用UNC网络。我担心的是,如果我在我们这里的网络中安装一个,它将不会部署到客户端网络。@Marlon:为什么你认为它不会部署到客户端网络?为什么不加入一个与客户端网络相同的指定网络共享?我们无法真正指定路径或驱动器号-我们有100多所学校,每个学校都有不同的网络配置。您好,谢谢您的建议,这似乎可以解决我的问题-但是,特定复选框被禁用:(只有前两个被启用。你有什么建议吗?我猜是的