我正在尝试从WCF服务库生成客户端代理。我在Windows XP Pro工作站上使用VS2005,.NET 3.0。 WCF服务托管在Windows服务中。当我将Windows服务作为控制台应用程序运行时,没有问题。我可以针对该地址运行svcutil.exe,它会生成代理。但是,当我在发布模式下编译该服务,并使用InstallUtil在工作站上安装它时,我收到错误“错误:无法从net.tcp:// localhost:9090 / Service2获取元数据”。这些是我使用app.config进行服务的设置
<behaviors>
<endpointBehaviors>
<behavior name="Test2">
<dataContractSerializer maxItemsInObjectGraph="2147483647" />
</behavior>
</endpointBehaviors>
<serviceBehaviors>
<behavior name="serviceBehaviour">
<serviceDebug includeExceptionDetailInFaults="true" />
<serviceMetadata />
<!--<serviceMetadata httpGetEnabled="true" />-->
<dataContractSerializer maxItemsInObjectGraph="2147483647" />
</behavior>
</serviceBehaviors>
</behaviors>
<bindings>
<customBinding>
<binding name="TestBinding2" inactivityTimeout = "00:30:00" openTimeout="00:30:00"
receiveTimeout="00:30:00"
sendTimeout="00:30:00">
<binaryMessageEncoding />
<tcpTransport transferMode="StreamedResponse" />
</binding>
</customBinding>
</bindings>
答案 0 :(得分:0)
在黑暗中拍摄几张照片......
您的Windows服务是否正在运行?除此之外,您的WCF服务是否在Windows服务中运行?我的项目还在Windows服务中托管WCF服务(您可以逐步查看here)。即使我将Windows服务标记为自动启动,我仍然需要第一次手动启动它。也许有一个InstallUtil.exe的命令行选项我不知道会为我做这个。但问题是,如果你的Windows服务或你的WCF服务没有运行,你显然看不到MEX端点。
我注意到的另一件事。您的错误表明无法从net.tcp:// localhost:9090 / Service2获取元数据,但您在评论中发布的基地址显示 的net.tcp://本地主机:9090 / Service_2。也许这只是一个类型o,但是仔细检查所有内容是否拼写都没有问题,特别是如果add.config是手动生成的。