我正在尝试使用WCF 4来设置RESTful Web服务.我希望使用HTTP和HTTPS可以访问该服务.默认情况下,使用以下配置创建服务,该配置适用于http但不适用于https:
<system.serviceModel>
<behaviors>
<endpointBehaviors>
<behavior>
<webHttp helpEnabled="true" />
</behavior>
</endpointBehaviors>
</behaviors>
<protocolMapping>
<add scheme="http" binding="webHttpBinding" />
</protocolMapping>
</system.serviceModel>
Run Code Online (Sandbox Code Playgroud)
然后,我可以通过稍微更改配置为此服务打开HTTPS:
<system.serviceModel>
<behaviors>
<endpointBehaviors>
<behavior>
<webHttp helpEnabled="true" />
</behavior>
</endpointBehaviors>
</behaviors>
<bindings>
<webHttpBinding >
<binding name="SecureWebBinding" >
<security mode="Transport"></security>
</binding>
</webHttpBinding>
</bindings>
<protocolMapping>
<add scheme="http" binding="webHttpBinding" bindingConfiguration="SecureWebBinding"/>
</protocolMapping>
</system.serviceModel>
Run Code Online (Sandbox Code Playgroud)
我的问题是如何让服务与两者兼容?
我正在编写一个使用JNA将Java的工作委派给本机C ++库的服务。C ++库对计算量大的任务进行异步调用,然后在该任务完成时获得回调(在不同的OS线程上)。我想将这项工作的结果路由回JVM中的正确线程。
我想知道的是,能否保证JVM线程ID始终具有与本机thread_id的一对一映射?即如果我通过C在C ++中记录线程ID
std::this_thread::get_id()
Run Code Online (Sandbox Code Playgroud)
然后启动一些昂贵的工作并在cv上进行阻止,一旦工作完成,线程仍将存在,并且我将能够正确地将结果返回给JVM。是否有任何像JIT,GC这样的幕后JVM都能正常工作,或者会停止收集世界呢?
如果CPU尝试执行已使用CPU不支持的某些指令编译的二进制文件,会发生什么.我特别想知道在旧处理器上运行的一些新的AVX指令.
我假设这可以进行测试,理论上可以向用户显示友好消息.据推测,大多数低级别的图书馆将代表您进行检查.假设你没有做这个检查,你会发生什么?您的流程会收到什么信号?