web-dev-qa-db-ja.com

XなしでLinuxサーバーでGUIを使用してMonoアプリを開く方法

ソースコードを編集できないMonoアプリケーションを実行しています。

$ mono app.exe

未処理の例外:System.TypeInitializationException:System.Windows.Forms.WindowsFormsSynchronizationContextの型初期化子によって例外がスローされました---> System.TypeInitializationException:System.Windows.Forms.XplatUIの型初期化子によって例外がスローされました--- > System.ArgumentNullException:ディスプレイを開けませんでした(X-Serverが必要です。DISPLAY環境変数を確認してください)

パラメーター名:ディスプレイ

このサーバーはsshを介してのみアクセスでき、グラフィカルインターフェイスはありません。 xserver-xorgをインストールし、DISPLAY環境変数を:0に設定しましたが、エラーはまだあります。また、xhostを実行すると、ディスプレイを開けないというエラーが表示されます。

Monoアプリを開くにはどうすればよいですか? GUIを完全に破棄しても構いません。実行するにはアプリが必要です。


答えの1つに続いて、DISPLAY変数を-Xオプションに接続してssh変数を設定解除し、xhost +を試行しましたが、unable to open display ""エラーが発生します。

sshの場合、接続時にX11 forwarding request failed on channel 0エラーが発生します。

1
BlueMoon93

$DISPLAYの迷信的な設定を取り消します。 「このサーバーはsshを介してのみアクセスし、グラフィカルインターフェイスを持たない」上で(存在しない)Xサーバーにアクセスしようとしています。 xserver-xorgのアンインストールはオプションですが、$DISPLAYを修正する必要があります。

元のシステムで、-Xまたは-Yオプションを使用して接続を開始します(man sshを参照)。サーバーをxhost +する必要があるかもしれません。

また、クライアントにXサーバーが必要です。 – @ bodhi.zazen

1
waltinator

私は this に従ってsshdの設定と設定を編集しました。

X11Forwarding yes

X11UseLocalhostいいえ

その後、私のssh接続でXアプリを適切に転送でき、モノアプリを起動できました。

0
BlueMoon93