
Windows Server と通常のデスクトップ Windows の違いに関する技術的な詳細を知りたいです。具体的には、Windows 10 と Server 2008 です。
私は自分のアプリケーションの 1 つで、私たちのマシンでは問題なく動作するのにもかかわらず、クライアントのサーバーではクラッシュするという問題を解決しようとしています。なぜこのようなことが起こるのか全くわからず、手がかりを探しています。
答え1
@Rudolphが述べたようにエアコメントでは、問題を解決する可能性を高めるために、より具体的な内容を入力する必要がります。エラー メッセージやコード、ログに記録されたイベント、ここで話題にしているアプリの種類の概要など...
ただし、互換性に影響を与える可能性のある「通常の」Windows (クライアント) と Windows Server の違いのいくつかを簡単に説明することはできます。
- IE強化された保護モードIE はより安全になりますが、EPM は攻撃対象領域を最小限に抑えるためにいくつかの機能を無効にするため、IE を使用して Web ページ (埋め込まれた IE フレームを含む可能性あり) を読み込む必要があるアプリケーションが動作しない可能性があります。
- 「デスクトップ」コンポーネント (Windows Media Player など) は、デフォルトではサーバーにインストールされません。インストールすることはできますが、通常、サーバーには必要ありません。
- 32 ビット バージョン。Win10 は 32 ビット プラットフォームで引き続き使用できますが、Windows Server は使用できなくなりました (ただし、Server 2008 (実際には大幅に異なるバージョンである R2 ではなく、最初のリリース) が 32 ビット バージョンの最後のバージョンだったと思います)。実際には、これは問題にならないはずですが、何らかの理由でアプリが 64 ビット バージョンの Windows で動作しない場合 (たとえば、32 ビット ドライバーをロードしたり、16 ビット プログラムを実行したりする必要があったり、ファイル システムとレジストリ レイアウトについて不適切な想定を行ったりした場合)、問題が発生する可能性があります。ただし、64 ビット Win10 で実行できる場合は、64 ビット Server でも実行できるはずです。
もちろん、もう 1 つ違いがあります。それは、単純なリリース バージョンです。Win10 は真新しいもので、最新の API をすべてサポートする NT10.0 カーネルで実行されています。Server 2008 は Vista SP1 の頃にリリースされてから 7 年が経ち、現在は 4 リリース前の NT 6.0 カーネルで実行されています。6.0 から 10.0 までのリリースで追加された API は比較的少数ですが (混乱を招くように、中間のバージョンは 6.1、6.2、6.3 です)、多少は増えています。アプリが特に 6.0 を対象としていない場合は、そのバージョンには存在しない API を使用している可能性があります。
アプリが Vista で動作するかどうかをテストしましたか (または、クライアントが実際に Server 2008 R2 を実行している場合は、Win7 でアプリをテストしましたか)?