Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/wcf/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/visual-studio-code/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 404 Windows服务中承载的WCF服务出现错误_C#_Wcf_Windows Services - Fatal编程技术网

C# 404 Windows服务中承载的WCF服务出现错误

C# 404 Windows服务中承载的WCF服务出现错误,c#,wcf,windows-services,C#,Wcf,Windows Services,我正在尝试创建一个承载在windows服务中的WCF服务,并在部署到服务器之前在本地进行测试 创建并安装了服务,我可以正常运行服务 当我尝试通过VisualStudio或使用WCFTestClient添加引用时,会出现以下错误 错误:无法从中获取元数据 如果这是Windows(R) 请访问您的通信基础服务 检查是否已在指定的位置启用元数据发布 地址。有关启用元数据发布的帮助,请参阅 MSDN文档位于 交换 错误URI:元数据 包含无法解析的引用:' ”“没有终点 听这个可以 接受信息。这通常是由

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

创建并安装了服务,我可以正常运行服务

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

错误:无法从中获取元数据 如果这是Windows(R) 请访问您的通信基础服务 检查是否已在指定的位置启用元数据发布 地址。有关启用元数据发布的帮助,请参阅 MSDN文档位于 交换 错误URI:元数据 包含无法解析的引用:' ”“没有终点 听这个可以 接受信息。这通常是由于地址或地址不正确造成的 SOAP操作。有关更多详细信息,请参阅InnerException(如果存在)。这个 远程服务器返回错误:(404)未找到。HTTP获取错误
乌里:有一次 下载“”时出错。
请求失败,HTTP状态为404:未找到

这是我的app.config

<?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>

如果这是您可以访问的Windows(R)通信基础服务,请检查您是否已在指定地址启用元数据发布。有关启用元数据发布的帮助,请参阅Exchange错误URI处的MSDN文档:元数据包含无法解析的引用:“”。没有可以接受消息的端点正在侦听。这通常是由不正确的地址或SOAP操作引起的。有关更多详细信息,请参阅InnerException(如果存在)。无法连接到远程服务器无法建立连接,因为目标计算机主动拒绝了它127.0.0.1:8000HTTP GET Error URI:下载“”时出错。无法连接到远程服务器无法建立连接,因为目标计算机主动拒绝127.0.0.1:8000连接


您应该将客户端(如WcfTestClient)连接到
http://localhost:8000/ServiceModelSamples/service
。错误表明您正在尝试连接到
http://localhost/ServiceModelSamples/service
不带端口,即


我假设您在本地主机上运行IIS?这就是为什么这个错误还说
远程服务器返回了一个错误:(404)找不到。
IIS服务器正在侦听端口80,无法找到
ServiceModelSamples/service
,因此返回404。

我的问题是服务属性中未设置服务名称,因此我设置了该名称,并确保安装程序服务名称匹配。
还将其设置为
LocalSystem
帐户。不确定这是否有任何影响,但它被设置为
NetworkService

您的路径应该是
http://localhost/ServiceModelSamples/service.svc
添加引用时。@MairajAhmad刚刚尝试过,仍然生成一个错误您的类的名称是什么。我猜是
CalculatorService
如果这是名称,那么地址应该是
http://localhost/ServiceModelSamples/CalculatorService.svc
@MairajAhmad类名是CalculatorWindowsService,尝试将/service替换为/CalculatorWindowsService,但它仍会生成错误OK右键单击svc文件浏览服务,然后单击“浏览”并使用该路径。尝试添加端口时,我仍然收到错误,尽管不再是404错误。此外,这不是在IIS中运行的,它是一个windows托管服务。我没有说该服务正在IIS中运行,但我假设您的计算机确实运行IIS。客户端尝试获取“”。由于IIS正在本地主机(端口80)上侦听,因此IIS正在尝试为请求提供服务。无论如何,你能用新的错误更新这个问题吗?所以即使我在windows服务中托管,我仍然需要运行IIS?不,你不需要。问题是:您的计算机可能正在运行IIS以及windows服务。IIS在端口80侦听HTTP请求。您的windows服务正在端口8000侦听HTTP请求。类似“”的请求被定向到端口80(HTTP请求的默认端口),因此由IIS提供服务类似“”的请求被定向到端口8000。windows服务应该侦听的端口(根据app.config)。