最近我开发了一个WCF Web服务,在Internet文件的帮助下,我设法在Windows服务中托管它。我还设法在我的计算机上成功安装并启动了这个Windows服务。原则上,Web服务工作正常(调试已完成);它的任务是从位于同一台计算机上的MySQL数据库中检索一些数据。
现在我的问题是:假设我在我的产品的客户端;所以现在我想开发一个客户端应用程序,该应用程序与我在此Windows服务上托管的Web服务联系(使用)。 我该怎么做?为了让我的应用程序找到Web服务,必要的配置/过程是什么?
请注意,出于调试目的,我设法创建了一个成功访问Web服务的控制台调试应用程序。这是通过Visual Studio 2012中的“添加引用”菜单完成的,其中包含在单独调试WCF Web服务时获得的临时链接 - 关闭图5-19 here。通过使用VS提供的URL
,我发现WCF WS是工作室的一部分,其中包含了我的测试应用程序(http://127.0.0.1:12415/LifeWS.svc)
。既然WCF WS位于Windows服务中,我不知道要使用哪个URL。
这是我当前的Windows Service App.config文件:
<?xml version="1.0" encoding="utf-8" ?>
<configuration>
<configSections>
<sectionGroup name="applicationSettings" type="System.Configuration.ApplicationSettingsGroup, System, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" >
<section name="LifeWSService.Properties.Settings" type="System.Configuration.ClientSettingsSection, System, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" requirePermission="false" />
</sectionGroup>
</configSections>
<system.serviceModel>
<services>
<service behaviorConfiguration="LifeWSBehavior" name="Lifemed.Service.LifeWSService"> <!--LifeWSService.LifeWSService-->
<!-- this endpoint is exposed at the base address provided by host: http://localhost:12415/Lifemed -->
<endpoint address=""
binding="wsHttpBinding"
contract="LifeWSService.ILifeWS" />
<endpoint address="mex" binding="mexHttpBinding" contract="IMetadataExchange" />
<host>
<baseAddresses>
<add baseAddress="http://127.0.0.1:12415/Lifemed" />
</baseAddresses>
</host>
</service>
</services>
<behaviors>
<serviceBehaviors>
<behavior name="LifeWSBehavior">
<serviceMetadata httpGetEnabled="true"/>
<serviceDebug includeExceptionDetailInFaults="False"/>
</behavior>
</serviceBehaviors>
</behaviors>
</system.serviceModel>
<applicationSettings>
<LifeWSService.Properties.Settings>
<setting name="LifeWSService_LifeServices_LifeWS" serializeAs="String">
<value>http://127.0.0.1:1559/LifeWS.asmx</value>
</setting>
<setting name="LifeWSService_LifeServices_WCF_LifeWS" serializeAs="String">
<value>http://127.0.0.1:12415/LifeWS.svc</value>
</setting>
</LifeWSService.Properties.Settings>
</applicationSettings>
</configuration>
注意:在上面的代码中,有另一个Web服务的参考,即我开发的WCF Web服务的ASP.NET版本。
感谢您的帮助,
Momergil
---编辑--- 我最近设法编辑我的客户端应用程序并在另一台计算机上执行它(与我的基本系统相同)。那么,我得到了这个例外:
葡萄牙语线说:“没有建立联系,因为目的机器主动拒绝他们127.0.0.1:12415。
答案 0 :(得分:0)
我认为它应该是{baseAddress} / {endpoint name}所以对于第一个端点(wsHttpBinding)它的http://127.0.0.1:12415/Lifemed/
和对于Mex它应该是http://127.0.0.1:12415/Lifemed/mex