我为我们使用的通信中间件构建了一个 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 vs 4.5.x 有线?
运行 .NET 4.5 应用程序时是否在 Server 2012 中激活了任何对 4.0 应用程序无效的安全机制。特别是关于 CLI 模块?
技术:本机代码是使用 VS2010 编译的,因此包装器是使用 VS2012 中的编译器编译的。编辑 C++ CLI 项目文件以设置所需的框架目标。测试应用程序是用 C# 编写的。