私たちが使用する通信ミドルウェア用の C++ CLI ラッパーを作成しました。ラッパーは .NET 4.5 にあり、Windows 7 および Windows Server 2008 R2 で正常に動作します。しかし、Windows Server 2012 R2 では、mswsock.dll の「アクセス違反」エラーでクラッシュします。
興味深い点は、.NET 4.0 を対象とするラッパーとテスト アプリケーションをビルドすると、それが機能することです。しかし、それらを .NET 4.5.x に再ターゲットすると、例外がトリガーされます。
セキュリティ、厳密な名前付け、.NET のホットフィックスについて調査しようとしましたが、役に立ちませんでした。
問題は、.NET 4.0 の Server 2012 R2 では動作するが、4.5.x では動作しないことです。アクセス違反が発生するのは、明らかにネイティブ コードが winsock API にアクセスするときです。
同じ問題、または同様の Server 2012 .NET 4.0 と 4.5.x の有線の問題を経験した人はいますか?
.NET 4.5 アプリケーションの実行時に Server 2012 でアクティブ化され、4.0 アプリケーションではアクティブ化されないセキュリティ メカニズムはありますか。特にCLIモジュールに関して?
技術: ネイティブ コードは VS2010 でコンパイルされるため、ラッパーは VS2012 でそのコンパイラを使用してコンパイルされます。C++ CLI プロジェクト ファイルを編集して、目的のフレームワーク ターゲットを設定します。テスト アプリケーションは C# で記述されています。