C++ 使用ATL库时如何在运行时更改web服务URL?
我试图使用另一家公司的现有web服务,但很难找到从不同位置使用相同web服务的解决方案 在地址C++ 使用ATL库时如何在运行时更改web服务URL?,c++,web-services,unmanaged,atl,C++,Web Services,Unmanaged,Atl,我试图使用另一家公司的现有web服务,但很难找到从不同位置使用相同web服务的解决方案 在地址http://url.to.A/webservice/< /代码>,我能够从.< /p>使用 sPosith.exe < /C> >为该服务生成C++代理类。 使用该类,我可以毫无问题地使用web服务 现在,我需要使用相同的web服务,但是来自另一个URL(比如http://url.to.B/webservice/)和以前创建的代理类不起作用。方法代理之一中的SendRequest方法始终返回错误的HR
http://url.to.A/webservice/< /代码>,我能够从.< /p>使用<代码> sPosith.exe < /C> >为该服务生成C++代理类。
使用该类,我可以毫无问题地使用web服务
现在,我需要使用相同的web服务,但是来自另一个URL(比如http://url.to.B/webservice/
)和以前创建的代理类不起作用。方法代理之一中的SendRequest
方法始终返回错误的HRESULT
代码。另外,为第二个服务生成一个新的代理提供了一个有效的解决方案
当我说这些服务是相同的时,我的意思是它们公开了完全相同的方法,因此它们各自的wsdl
定义文件只因服务URL不同而不同
我试图更改生成的代理类实例的URL
属性,但没有帮助
因为我被绑定到使用非托管C++来处理消耗部分,并且我希望能够在运行时指定服务端点,那么我的问题是否有可行的解决方案?
感谢您的帮助。为每个服务器/服务生成单独的代理类
然后对生成的代码执行一个diff。这应该会让您知道它们之间的区别。最终证明,使用sproxy.exe
无法生成可动态分配给Web服务端点的类。谢谢。差异仅与服务的URL有关,该URL在类的不同位置进行硬编码,但在某些ATL结构的const
成员中,则差异将出现在服务器中。也许是权限问题。您可以使用浏览器访问服务器吗?是的,“很遗憾”我可以通过浏览器访问这两个URL。。。谢谢你的提示顺便说一句。我不确定你是否理解正确,但我确实只有一个应用程序。它与两个代理一起工作。但我想知道它是否只能与一个代理一起工作,因为最终web服务位置应该是可配置的。。。谢谢你的帮助。