【问题标题】:Can't Find WCF .svc Endpoints找不到 WCF .svc 端点
【发布时间】:2010-10-30 02:41:20
【问题描述】:

在本地运行 Silverlight 应用程序时我没有任何问题。网站出现就好了。我们将代码部署到我们的测试环境并且我们的站点(或对我们数据的访问)停止工作。我认为我们的 svc 文件没有被识别。我倾向于端点问题。我对 wcf 和服务引用相当陌生。下面是我们的 webconfig 代码和我们的 clientconfig 代码。想知道是否有人可以就我们的问题给出一些指导。

我们的 web.config

<system.serviceModel>
  <behaviors>
    <serviceBehaviors>
      <behavior name="">
        <serviceMetadata httpGetEnabled="true" />
        <serviceDebug includeExceptionDetailInFaults="true"/>
      </behavior>
    </serviceBehaviors>
  </behaviors>
  <bindings>
    <customBinding>
      <binding name="AlgaeTrackerDataServices.customBinding0">
        <binaryMessageEncoding/>
        <httpTransport/>
      </binding>
    </customBinding>
  </bindings>
  <serviceHostingEnvironment aspNetCompatibilityEnabled="true" 
         multipleSiteBindingsEnabled="true"/>
  <services>
     <service name="AlgaeTrackerDataServices">
        <endpoint address="" 
                  binding="customBinding" 
                  bindingConfiguration="AlgaeTrackerDataServices.customBinding0" 
                  contract="AlgaeTrackerDataServices">
        </endpoint>
        <endpoint address="mex" 
                  binding="mexHttpBinding" 
                  contract="IMetadataExchange"/>
     </service>
   </services>
</system.serviceModel>

我们的客户端配置

 <system.serviceModel>
    <bindings>
        <customBinding>
            <binding name="CustomBinding_AlgaeTrackerDataServices">
                <binaryMessageEncoding />
                <httpTransport maxReceivedMessageSize="2147483647" 
                               maxBufferSize="2147483647" />
            </binding>
        </customBinding>
    </bindings>
    <client>
        <endpoint address="http://localhost:8080/AlgaeTrackerDataServices.svc"
                  binding="customBinding" 
                  bindingConfiguration="CustomBinding_AlgaeTrackerDataServices"
                  contract="AlgaeTrackerServices.AlgaeTrackerDataServices" 
                  name="CustomBinding_AlgaeTrackerDataServices" />
    </client>
</system.serviceModel>

本地...当我单击 svc 文件并在浏览器中查看时,它运行良好,我可以查看 wsdl。在我们的服务器上,我无法查看 svc 文件..

我收到一条错误消息,提示无法启动 asp.net develop...端口 8080 正在使用中

我们的事件日志这样说..

WebHost 未能处理请求。 发件人信息: System.ServiceModel.Activation.HostedHttpRequestAsyncResult/31852487 异常:System.Web.HttpException (0x80004005): 服务 '/AlgaeTrackerDataServices.svc' 确实 不存在。 ---> System.ServiceModel.EndpointNotFoundException: 服务 '/AlgaeTrackerDataServices.svc' 确实 不存在。在 System.ServiceModel.ServiceHostingEnvironment.HostingManager.EnsureServiceAvailable(字符串 标准化虚拟路径)在 System.ServiceModel.ServiceHostingEnvironment.EnsureServiceAvailableFast(字符串 相对虚拟路径)在 System.ServiceModel.Activation.HostedHttpRequestAsyncResult.HandleRequest() 在 System.ServiceModel.Activation.HostedHttpRequestAsyncResult.BeginRequest() 在 System.Runtime.AsyncResult.End[TAsyncResult](IAsyncResult 结果)在 System.ServiceModel.Activation.HostedHttpRequestAsyncResult.End(IAsyncResult 结果)进程名称:w3wp进程 编号:13128

提前感谢您的帮助...

【问题讨论】:

    标签: silverlight wcf


    【解决方案1】:

    使用 SVC 文件和 http 传输表明您可能在 IIS 中托管此 WCF 服务,对吗??

    在这种情况下,服务的地址由以下决定:

    • 您的服务器名称
    • 您的服务器端口(可选)
    • 您的 SVC 文件所在的虚拟目录(及其可能的子目录)
    • *.SVC 本身

    因此,对于“远程”客户端,地址通常如下所示:

    http://(servername)/(virtual directory name)/YourService.svc
    

    在远程客户端上,您的服务将肯定不在localhost - 那将是客户端机器本身。您需要使用具有该服务的服务器的服务器名称(或 IP 地址)。所以你需要做的(很可能)就是调整客户端的配置来引用服务的服务器地址/URL,而不是localhost。此外,除非您专门更改了 IIS 配置,否则您的服务将位于端口 80,而不是 8080。

    【讨论】:

      【解决方案2】:

      解决方法是在端点部分添加相对路径。

      而不是“http://localhost:8080/AlgaeTrackerDataServices.svc

      成功了

      "../AlgaeTrackerDataServices.svc

      【讨论】:

      • 哇,谢谢你的想法。我已经完成了 CTRL+H(在解决方案中全部替换)并将 http://localhost:8080/ 替换为新的 ../,现在本地项目和服务器上的解决方案一样有效!!!
      【解决方案3】:

      我实际上遇到了类似的问题,在我的案例中出现错误的原因是虚拟目录位于与主网站节点上定义为“主目录”的子文件夹不同的子文件夹中。例如:

      主目录c:\Inetpub\wwwroot

      应用路径:c:\Apps\MyService

      当我将 MyService 移至 c:\Inetpub\wwwroot\MyService 时,问题就消失了。

      IIS 要求您浏览服务的位置似乎有点奇怪,而实际上它必须是主目录上的子文件夹。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2011-04-10
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多