首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Windows服务中托管的WCF服务中的404错误

Windows服务中托管的WCF服务中的404错误
EN

Stack Overflow用户
提问于 2015-05-28 09:24:44
回答 2查看 1.9K关注 0票数 0

我正在尝试在windows服务中创建一个托管的WCF服务,并且在部署到服务器之前在本地进行测试。

创建并安装了服务,ok和我可以很好地运行该服务。

当我试图通过Visual或使用WCFTestClient添加引用时,会出现以下错误。

错误:如果这是您可以访问的Windows (R)通信基础服务,则无法从http://localhost/ServiceModelSamples/service获取元数据,请检查是否已启用指定地址的元数据发布。有关启用元数据发布的帮助,请参考http://go.microsoft.com/fwlink/?LinkId=65455.WS-Metadata Exchange错误URI:http://localhost/ServiceModelSamples/service元数据包含无法解析的引用的MSDN文档:“http://localhost/ServiceModelSamples/service”。在http://localhost/ServiceModelSamples/service没有能够接收消息的端点侦听。这通常是由不正确的地址或SOAP操作造成的。有关更多细节,请参见InnerException (如果存在)。远程服务器返回一个错误:(404)未找到。HTTP获取错误 URI:http://localhost/ServiceModelSamples/service下载'http://localhost/ServiceModelSamples/service‘时出错。 请求失败,HTTP状态404: Not找到。

这是我的app.config

代码语言:javascript
复制
<?xml version="1.0" encoding="utf-8" ?>
<configuration>
<system.serviceModel>
<services>
  <service behaviorConfiguration="CalculatorServiceBehavior" name="Microsoft.ServiceModel.Samples.CalculatorService">
    <endpoint address="" binding="basicHttpBinding" contract="Microsoft.ServiceModel.Samples.ICalculator" />
    <endpoint address="mex" binding="mexHttpBinding" contract="IMetadataExchange" />        
    <host>
      <baseAddresses>
        <add baseAddress="http://localhost:8000/ServiceModelSamples/service" />
      </baseAddresses>
    </host>
  </service>
</services>
<bindings>
</bindings>
<behaviors>
  <serviceBehaviors>
    <behavior name="CalculatorServiceBehavior">
      <serviceMetadata httpGetEnabled="true" />
      <serviceDebug includeExceptionDetailInFaults="false" />
    </behavior>        
  </serviceBehaviors>
</behaviors>
</system.serviceModel>
</configuration>

如您所见,这是对msdn上用于在Windows服务中托管WCF服务的教程的轻微修改。

我尝试过重新研究这个问题,但没有发现很多或大多数问题似乎与IIS宿主有关。

更新

添加venerik建议的端口号后,错误现在已更改为以下内容。

错误:如果这是您可以访问的Windows (R)通信基础服务,则无法从http://localhost:8000/ServiceModelSamples/service获取元数据,请检查是否已启用指定地址的元数据发布。有关启用元数据发布的帮助,请参考http://go.microsoft.com/fwlink/?LinkId=65455.WS-Metadata Exchange错误URI:http://localhost:8000/ServiceModelSamples/service元数据包含无法解析的引用的MSDN文档:“http://localhost:8000/ServiceModelSamples/service”。在http://localhost:8000/ServiceModelSamples/service没有能够接收消息的端点侦听。这通常是由不正确的地址或SOAP操作造成的。有关更多细节,请参见InnerException (如果存在)。无法连接到远程服务器,无法连接,因为目标机器主动拒绝了127.0.0.1:8000HTTPGET错误URI:http://localhost:8000/ServiceModelSamples/service,因此下载'http://localhost:8000/ServiceModelSamples/service‘时出错。无法连接到远程服务器,无法连接,因为目标计算机主动拒绝了127.0.0.1:8000

EN

回答 2

Stack Overflow用户

发布于 2015-05-28 10:36:52

您应该将客户端(如WcfTestClient)连接到http://localhost:8000/ServiceModelSamples/service。错误说明您正在尝试连接到没有端口的http://localhost/ServiceModelSamples/service,也就是说。

我想您已经在本地主机上运行IIS了?这就是为什么错误还表示The remote server returned an error: (404) Not Found.服务器正在监听端口80,无法找到ServiceModelSamples/service,因此返回404。

票数 0
EN

Stack Overflow用户

发布于 2015-05-28 14:25:48

对我来说,问题在于服务属性中没有设置服务名称,所以我设置了它,并确保安装程序服务名称匹配。还可以将其设置为LocalSystem帐户。不确定这是否有任何影响,但它被设置为NetworkService

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/30502421

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档