WWSAPI 相当于 <serviceCertificate> App.config 中的 C#/.net



我们正在构建一个C /WWSAPI客户端,以与第三方C#/。Net Server连接。我们有一个与服务器一起使用的示例C#/。网客户端。它在它的app.config(client.exe.config)中具有此内容:

<behaviors>
  <endpointBehaviors>
    <behavior name="TheirBehavior">
      <clientCredentials>
        <serviceCertificate>
          <defaultCertificate findValue="crypt.theirdomain.com" storeLocation="LocalMachine" storeName="Root" x509FindType="FindBySubjectName"/>
        </serviceCertificate>
      </clientCredentials>
    </behavior>
  </endpointBehaviors>
</behaviors>
<client>
  <endpoint address="https://zzz.theirdomain.com/TheirService.svc"
    binding="customBinding" bindingConfiguration="TheirServiceBinding" behaviorConfiguration="TheirBehavior"
    contract="ProdWS.ITheirService" name="TheirServiceBinding">
    <identity>
      <dns value="crypt.theirdomain.com"/>
    </identity>
  </endpoint>
</client>

我们也有一个证书,我们正在正确加载该证书(否则我们在通话前获得There was an error when trying to find certificate '...'; Cannot find object or property.。)

我们如何在wwsapi中启用这一点?是否有任何引用将显示所有.NET配置设置与相应的WWSAPI配置之间的映射?

以下配置(WS_SECURITY_BINDING中的设置)给出Invalid certificate credential specification in security binding.

WS_SSL_TRANSPORT_SECURITY_BINDING sslBind{};
sslBind.binding.bindingType = WS_SSL_TRANSPORT_SECURITY_BINDING_TYPE;
sslBind.localCertCredential = &certCred.credential;

这是正确的轨道吗?

我们放弃了这种方法。但是,即使要走得太远,我们也开始使用免费版本的Visual Studio 2015,并将代码和库移植到MSVC。

为了使其正常工作,我们创建了一个C#.dll项目,并将其.wsdl/.xsd文件添加为"服务参考",然后将该项目添加为对我们C 的参考。充满困难,包括必须手工攻击.v4.net v4.5进入.vcxproj,并且必须启用/clr并因此而为lib做一个神秘的补丁。但让它起作用。

我们的供应商对"互操作性"的主张是Baloney。只有C#,Visual Studio 2015,就像他们使用的一样,然后将其桥接到您自己的。

另外,library.dll.config文件需要重命名为可执行文件的executable.exe.config,或.net找不到。

相关内容

  • 没有找到相关文章

最新更新