3

出于不必要的原因,我正在尝试为 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:port 元素神秘地消失了:

<wsdl:service name="MyServiceMain">
    <wsdl:port name="BasicHttpBinding_IMyService" binding="tns:BasicHttpBinding_IMyService">
        <soap:address location="MyServiceMain.svc" />
    </wsdl:port>
</wsdl:service>

知道为什么吗?或者甚至可以指出我正确方向的东西,这可能表明引擎盖下发生了一些不同的事情。因为我现在被难住了。

4

0 回答 0