WCF托管为服务

时间:2011-05-10 20:14:13

标签: windows vb.net wcf service

我有一个作为Window Service托管的VB.NET WCF服务。我能够创建一个安装包,将服务安装到我的机器上,然后从管理工具中的服务手动启动服务。

现在,当我尝试在我的测试控制台应用程序中引用该服务时(地址:http://localhost:8080/),我收到以下错误:

  

下载'http:// localhost:8080'时出错。

     

无法连接到遥控器   服务器无法建立连接   因为目标机器很活跃   拒绝了它127.0.0.1:8080`

     

元数据包含一个引用   无法解决:   的 'http://本地主机:8080 /'。不能   连接到http://localhost:8080/。 TCP   错误代码10061:没有连接可以   是因为目标机器   积极拒绝它127.0.0.1:8080。   无法连接到远程服务器   无法建立联系,因为   目标机器积极拒绝它   127.0.0.1:8080如果在当前解决方案中定义了服务,请尝试   构建解决方案并添加   服务参考。

不确定我能做些什么。任何想法???

谢谢, 杰森。

以下是我服务中app.config的代码:

<?xml version="1.0" encoding="utf-8" ?>
<configuration>
   <system.diagnostics>
      <sources>
         <!-- This section defines the logging configuration for My.Application.Log -->
         <source name="DefaultSource" switchName="DefaultSwitch">
            <listeners>
                <add name="FileLog"/>
                <!-- Uncomment the below section to write to the Application Event Log -->
                <!--<add name="EventLog"/>-->
            </listeners>
         </source>
       </sources>
       <switches>
          <add name="DefaultSwitch" value="Information" />
       </switches>
       <sharedListeners>
          <add name="FileLog"
               type="Microsoft.VisualBasic.Logging.FileLogTraceListener, Microsoft.VisualBasic, Version=8.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a, processorArchitecture=MSIL" 
               initializeData="FileLogWriter"/>
       </sharedListeners>
   </system.diagnostics>

   <system.serviceModel>
      <services>
         <service name="ExStreamWCF.Service1" 
                  behaviorConfiguration="ExStreamWCF.Service1Behavior">
            <!-- Service Endpoints -->
            <host>
               <baseAddresses>
                   <add baseAddress = "http://localhost:8080/Design_Time_Addresses/JasonsService/Service/" />
               </baseAddresses>
            </host>
            <endpoint address="" binding="wsHttpBinding" contract="ExStreamWCF.IService1">
               <identity>
                  <dns value="localhost"/>
               </identity>
            </endpoint>
            <endpoint address="mex" binding="mexHttpBinding" contract="IMetadataExchange"/>
         </service>
      </services>
      <behaviors>
         <serviceBehaviors>
            <behavior name="ExStreamWCF.Service1Behavior">
               <serviceMetadata httpGetEnabled="true"/>
               <serviceDebug includeExceptionDetailInFaults="false"/>
            </behavior>
         </serviceBehaviors>
      </behaviors>
   </system.serviceModel>
</configuration>

如果有人需要我更多,请告诉我!

1 个答案:

答案 0 :(得分:0)

不确定这是否真的是一个问题 - 但在生产服务器上,我永远不会使用localhost作为我的基地。

你可以尝试改变:

<service name="ExStreamWCF.Service1" 
         behaviorConfiguration="ExStreamWCF.Service1Behavior">
   <host>
      <baseAddresses>
         <add baseAddress = "http://localhost:8080/Design_Time_Addresses/JasonsService/Service/" />
      </baseAddresses>
   </host>

<service name="ExStreamWCF.Service1" 
         behaviorConfiguration="ExStreamWCF.Service1Behavior">
   <host>
      <baseAddresses>
         <add baseAddress = "http://YourServerName:8080/Design_Time_Addresses/JasonsService/Service/" />
      </baseAddresses>
   </host>

调用服务时会有什么不同吗?