我创建了一个小型应用程序,使用以下命令自动升级为管理员:
requestedExecutionLevel level="highestAvailable" uiAccess="false"
如果我在计算机上本地运行应用程序,这可以正常工作。但是,如果计算机试图在netork上运行我的可执行程序,它只会在启动时崩溃,并显示一条消息“你想发送有关该问题的更多信息吗?”错误。如果我右键单击并以管理员身份运行,我的应用程序将运行并将提示输入管理员凭据。
我从(通过网络)运行我的应用程序的文件夹具有对“所有人”的完全读/写权限。
我的问题是:有什么我错过的吗?为什么我可以在本地运行我的应用程序而不会收到提示但是网络崩溃或需要管理员?
任何人都可以帮忙解释可能导致此问题的原因吗?
更新 我检查了我的事件查看器日志,它显示以下内容:
应用程序: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,Boolean) 在Microsoft.VisualBasic.ApplicationServices.WindowsFormsApplicationBase.Run(System.String []) 在AutoUpdater.My.MyApplication.Main(System.String [])
我不明白它为什么要引用System.Net.Sockets?但这似乎是我的应用程序崩溃。
答案 0 :(得分:0)
确保尝试运行应用程序的其他计算机安装了正确的.Net框架版本。如果用户能够打开可执行文件,那么不应该是其他任何有权限的问题。
如果您已验证框架版本,请查看错误报告中是否有任何可能指向崩溃原因的内容。很多时候,可能会有一些东西可以指向正确的方向。
答案 1 :(得分:0)
.NET应用程序不喜欢默认从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