私はこの質問をするいくつかの同様の質問を見つけましたが、通常はサーバーを見たりデスクトップにアクセスしたりできるという文脈で。この質問に対するいくつかの回答は、リモートでそれを行う方法に言及しています。
.NET 3.5 SP1がインストールされているかどうかはどうすればわかりますか?
しかし、私の状況では、答えが正確であるか、可能であるかはわかりません。
では、TL; DR:ログインアクセスがなくても、フレームワークのバージョンとサービスパックだけでなく、WindowsサーバーのOS自体(現時点ではわかりません)を判別するための決定的な方法は何でしょうか。
説明:アクセスできないサーバーでホストされているイントラネットasp.netアプリケーションを開発しています。デスクトップをリモートインできません。ログインしていません。私がアクセスできるのは、自分のWebサイトのファイルシステムの仮想ディレクトリだけです。これらのアセンブリを追加すると、サイトでエラーが発生します。
<add assembly="System.Web.Entity, Version=3.5.0.0, Culture=neutral, PublicKeyToken=B77A5C561934E089"/>
<add assembly="System.Data.Entity, Version=3.5.0.0, Culture=neutral, PublicKeyToken=B77A5C561934E089"/>
調査によると、これらの追加アセンブリを取得するには、.net 3.5 ServicePack1をWebサーバーにインストールする必要があります。
私はこのコードを使用しましたが、このコードはWebページで実行され、結果は同じことを示しています。つまり、フレームワーク3.5はsp1なしでインストールされています。
そこで、サーバーを実行しているITグループに電子メールを送信し、sp1がインストールされていないことを伝えました。さて、それはいくつかのより高い注目を集めました、そしてこの電子メールから戻ってくるいくらかの熱があります。その後、ITグループは電子メールで返信し、実際にはすべてのSP1のものを含むSP2がインストールされていると述べました。テストを再実行しても、同じ結果が得られます。以前にインストールしていなかった場合は、今すぐインストールしてみたはずなので、気になります。使用しているコードが機能しないか、インストールされているかどうかが検出されないのではないかと心配しています。 SP2がインストールされています。私のアセンブリはまだサーバーによって検出されません。
私は現在かなり見栄えが悪いので、これについて間違っていた場合、または実際にインストールされていないことを示した場合は、できるだけ早くお詫びしたいと思います。