C# 在VisualStudio/SSIS中使用HTTPS WSDL

C# 在VisualStudio/SSIS中使用HTTPS WSDL,c#,web-services,visual-studio,ssis,wsdl,C#,Web Services,Visual Studio,Ssis,Wsdl,我最近遇到了一个问题,我有一个web服务asmx文件,客户端可以通过https地址访问wsdl,例如。将web引用添加到Visual Studio时,它会尝试访问—这会返回404错误,因为服务器未配置为允许非安全访问。在SSIS中添加web服务引用或web服务任务(即使添加了证书)时也会发生这种情况 在VisualStudio中,我还可以将其添加为服务引用,这通常是有效的(double[]更改为ArrayOfDouble等除外),但在SSIS中提供的VisualStudio中,服务引用似乎不是一

我最近遇到了一个问题,我有一个web服务asmx文件,客户端可以通过https地址访问wsdl,例如。将web引用添加到Visual Studio时,它会尝试访问—这会返回404错误,因为服务器未配置为允许非安全访问。在SSIS中添加web服务引用或web服务任务(即使添加了证书)时也会发生这种情况

在VisualStudio中,我还可以将其添加为服务引用,这通常是有效的(double[]更改为ArrayOfDouble等除外),但在SSIS中提供的VisualStudio中,服务引用似乎不是一个选项


我已经搜索了很多次,似乎没有简单的解决方案来强制使用https。相反,我想知道是否有一种方法可以将wsdl引用手动导入到项目中,而不将其作为web引用添加(只是添加请求方法)。这样我就可以创建自己的https SoapClient,它使用这些方法而不存在web引用问题。

您可以使用
wsdl.exe


wsdl.exe
可以通过打开
Developer命令提示符
来使用,或者从它所在的文件夹执行它:
ProgramFiles/Microsoft SDKs\Windows\v7.0A\Bin\wsdl.exe

您可以使用与wsdl.exe位于同一文件夹中的disco.exe下载web服务wsdl文件


然后,您可以继续使用Wsdl.exe生成代理类

您可以使用svcutil.exe

svcutil.exe [/t:code] <metadataDocumentPath>* | <url>* | <epr>

刚试过,效果很好。为了避免https问题,我仍然必须手动下载webservice.asmx?wsdl文件并将其保存为webservice.wsdl,然后将该wsdl转换为代理类。这只是在@scheien answer上扩展,我知道它在不久前得到了回答,但我认为它对社区很有用。
disco http://www.proseware.com/prosewareWebservice.disco /o:"c:\folder" 
svcutil.exe [/t:code] <metadataDocumentPath>* | <url>* | <epr>
svcutil *.wsdl *.xsd /l:C#