【问题标题】:Can't run vb.net application as administrator across network无法跨网络以管理员身份运行 vb.net 应用程序
【发布时间】:2026-02-10 13:30:01
【问题描述】:

我创建了一个小型应用程序,使用以下命令自动提升为管理员:

requestedExecutionLevel level="highestAvailable" uiAccess="false"

如果我在计算机上本地运行应用程序,这会很好。但是,如果计算机试图通过网络运行我的可执行文件,它只会在启动时崩溃并显示一条消息“您想发送有关该问题的更多信息吗?”错误。如果我右键单击并以管理员身份运行,我的应用程序将运行并提示输入管理员凭据。

我从(通过网络)运行我的应用程序的文件夹对“每个人”具有完全的读/写权限。

我的问题是:我错过了什么吗?为什么我可以在本地运行我的应用程序但没有收到提示但跨网络崩溃或需要管理员?

任何人都可以帮助解释可能导致此问题的原因吗?

更新 我检查了我的事件查看器日志,它显示以下内容:

应用程序:AutoUpdater.exe 框架版本:v4.0.30319 说明:进程因未处理的异常而终止。 异常信息:System.Net.Sockets.SocketException 堆: 在 System.Net.Sockets.Socket..ctor(System.Net.Sockets.AddressFamily,System.Net.Sockets.SocketType,System.Net.Sockets.ProtocolType) 在 System.Net.Sockets.TcpListener..ctor(System.Net.IPAddress,Int32) 在 System.Runtime.Remoting.Channels.Tcp.TcpServerChannel.SetupChannel() 在 System.Runtime.Remoting.Channels.Tcp.TcpServerChannel..ctor(System.Collections.IDictionary,System.Runtime.Remoting.Channels.IServerChannelSinkProvider,System.Runtime.Remoting.Channels.IAuthorizeRemotingConnection) 在 Microsoft.VisualBasic.ApplicationServices.WindowsFormsApplicationBase.RegisterChannel(ChannelType,布尔) 在 Microsoft.VisualBasic.ApplicationServices.WindowsFormsApplicationBase.Run(System.String[]) 在 AutoUpdater.My.MyApplication.Main(System.String[])

我不明白为什么它引用 System.Net.Sockets??但这似乎是我的应用程序崩溃的原因。

【问题讨论】:

  • 我对你的问题不放心。您是否尝试从 LAN 文件夹执行应用程序?要不然是啥?如果您的程序不在一个文件中,这通常不起作用。
  • 你可以尝试复制/粘贴内部异常(如果可用?)套接字用于连接到某些程序(ftp、文件共享、数据库等),所以如果你的应用程序正在尝试连接到某些服务,那么这可能是问题所在。尝试发布一些它正在做什么的代码,以便我们可以看到问题可能是什么。
  • 您是否在运行它的机器上授予了对应用程序的信任?请参阅下面的@SpectralGhost 答案。

标签: vb.net


【解决方案1】:

确保尝试运行您的应用程序的其他计算机安装了正确的 .Net 框架版本。如果用户能够打开可执行文件,则不应该存在任何其他权限问题。

如果您已经验证了框架版本,请查看错误报告中是否有任何可能指向崩溃原因的内容。很多时候,那里可能有一些东西可以为您指明正确的方向。

【讨论】:

  • 已用事件查看器中发现的错误更新了我的帖子。
【解决方案2】:

.NET 应用程序默认不喜欢从 Intranet 运行。

试试这个:

  1. 转到控制面板 -> 管理工具 -> Microsoft .NET Framework 2.0 配置
  2. 单击配置代码访问安全策略链接
  3. 点击调整区域安全
  4. 将“我的电脑”和本地 Intranet 设置为完全信任

如果这可行,那么这是一个本地安全问题。如果需要编写脚本,可以使用框架中的 caspol exe。样本

C:
cd %windir%\Microsoft.NET\Framework\v2.0.50727
CasPol.exe -pp off -m -ag 1. -URL Z:\folder\EXEName.exe FullTrust -n FriendlyNameOfEXE

【讨论】: