由于没有必要进入这个线程的原因,我正在尝试为svcutil创建一个包装器,然后将标准化wsdl&创建的xsd文档指向某些地址。但是,我的一个WCF服务有两个不同的服务合同,一个用于内部处理,一个发布到外部客户端。当我从cmd.exe运行 svcutil / target:metadata serviceAddress.svc 时,我会得到一个包含以下条目的完整wsdl文档:
<wsdl:service name="MyServiceMain">
<wsdl:port name="BasicHttpBinding_IMyService" binding="tns:BasicHttpBinding_IMyService">
<soap:address location="MyServiceMain.svc" />
</wsdl:port>
<wsdl:port name="BasicHttpBinding_IInternalServiceContract" binding="tns:BasicHttpBinding_IInternalServiceContract">
<soap:address location="MyServiceMain.svc" />
</wsdl:port>
</wsdl:service>
但是,如果我使用Process对象(ProcessStartInfo对象设置了相同的环境变量,肯定使用相同版本的svcutil)来运行相同的命令,其中一个wsdl:端口元素神秘地消失了:
<wsdl:service name="MyServiceMain">
<wsdl:port name="BasicHttpBinding_IMyService" binding="tns:BasicHttpBinding_IMyService">
<soap:address location="MyServiceMain.svc" />
</wsdl:port>
</wsdl:service>
任何想法为什么?或者甚至可以指向正确方向的东西,这可能表明发生了不同的事情。因为我现在很难过。