2017-07-13 18 views
0

一部のクライアントマシンでは、.NET Frameworkに関連するいくつかの非互換性の問題があります。プログラムでASP.NETバージョンを取得する

サーバーエラーが発生すると、エラーページが表示されます。 は、私たちがこの情報を持っているページの下部に:

Version Information: Microsoft .NET Framework Version:4.0.30319; ASP.NET Version:4.6.1637.0 

I'veは異なる記事を読んで、成功せずに、プログラムでその値を取得するために、複数のものを試してみました。

これはI'veが試みものである:

1)

Console.WriteLine(Environment.Version.ToString()); 

結果:

4.0.30319.42000 

2)プログラムによる読み出し:

HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\ASP.NET 

結果:

をプログラムによる読み
4.0.30319.0 

3):

HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\NET Framework Setup\NDP\v4\Full 

結果:あなたはそれらの値のどれもが、マップないことを確認することができたよう

4.6.01586 

は、ASP.NETバージョンは、エラーページに示しました。

だから、私は2つの質問がある:

1)私はプログラム的にASP.NETのバージョンを取得できますか?

2)明らかに.NET4.6がインストールされていたが、ASP.NETバージョンが4.0.30319だったケースがありました(これが原因です)。 ASP.NETのみをアップグレードする方法はありますか?これは意味をなさない?

私は申し訳ありませんイメージを追加するのに十分な評判はありません。

+0

は 'typeof演算(ページ).Assembly.GetName()いバージョンを。 //ASP.NET Version'は動作しませんか? [ソース](https://stackoverflow.com/questions/34878979/identify-the-asp-net-version-of-a-site) – jAC

+0

これは私に実行アセンブリのバージョンを与え、私の場合は1.0.0.0です。 (それはコンソールアプリケーションです) – klewgenius

答えて

0

私はあなたの最初の質問に答えることができます。

あなたはプログラム的にそのようにASP.NETのバージョンを受け取ることができます。

var netPath = 
System.Runtime.InteropServices.RuntimeEnvironment.GetRuntimeDirectory(); 
var systemWebPath = Path.Combine(netPath, "System.Web.dll"); 
if (File.Exists(systemWebPath)) 
{     
    FileVersionInfo fileVersionInfo = FileVersionInfo.GetVersionInfo(systemWebPath); 
    string version = fileVersionInfo.ProductVersion; 
} 
関連する問題