将WCF服务添加到子文件夹中

时间:2011-05-16 02:51:50

标签: wcf

我创建了一个新的wcf4 Web应用程序并添加了一个新的wcf服务。 我创建了一个子文件夹,并将创建的服务移动到子文件夹中。

e.g。

ROOT
ROOT/Business/V1/BusinessV1.svc

我已将服务部署到我的IIS7环境中但是我一直收到此错误

  

类型   'MyNameSpace.WebWCF.Business.V1',   作为服务属性提供   ServiceHost指令中的值,或   在配置元素中提供   system.serviceModel / serviceHostingEnvironment / serviceActivations   无法找到。

我的服务文件如下所示

<%@ ServiceHost Language="C#" Debug="true" 
    Service="MyNameSpace.WebWCF.BusinessV1" CodeBehind="BusinessV1.svc.cs" %>

背后的代码看起来像

namespace MyNameSpace.WebWCF
{
  public class BusinessV1 : IBusinessV1
  {
  }
}

我的合约似乎是

namespace MyNameSpace.WebWCF
{
   [ServiceContract]
   public interface IBusinessV1
} 

最后我的web.config

<system.serviceModel>
   <services>
      <service name="MyNameSpace.WebWCF.Business_v1">
         <endpoint 
             address="http://mydomain.com/Business/v1/BusinessV1.svc" 
             binding="basicHttpBinding" 
             bindingConfiguration="" 
             contract="MyNameSpace.WebWCF/IBusinessV1" 
             listenUri="/" isSystemEndpoint="true" />
      </service>
   </services>
   <behaviors>
      <serviceBehaviors>
         <behavior name="">
            <serviceMetadata httpGetEnabled="true" />
            <serviceDebug includeExceptionDetailInFaults="false" />
         </behavior>
      </serviceBehaviors>
   </behaviors>
   <serviceHostingEnvironment multipleSiteBindingsEnabled="true" />
</system.serviceModel>

有人可以帮我解决我做错的事吗?它让我疯狂。

2 个答案:

答案 0 :(得分:3)

有一点是:您的服务名称不一致。

在您的服务实现类中,您有:

namespace MyNameSpace.WebWCF
{
  public class BusinessV1

并在您的*.svc文件中,您拥有相同的限定名称:

Service="MyNameSpace.WebWCF.BusinessV1"

但是在web.config中,您使用:

<service name="MyNameSpace.WebWCF.Business_v1">

您的服务实现是定义服务名称的服务实现 - 使用命名空间完全限定:MyNameSpace.WebWCF.BusinessV1

因此,您需要使用此完全限定名称 - 并且完全 - 在*.svc文件中(确定!)和您的web.config

<service name="MyNameSpace.WebWCF.BusinessV1">

使用MyNameSpace.WebWCF.BusinessV1代替MyNameSpace.WebWCF.Business_v1

如果该名称不匹配,WCF运行时将找不到您指定的配置,并将回退到系统默认值

答案 1 :(得分:0)

两个问题可能会有所帮助:

第一:移动后你确定合同仍然与网络服务相对应吗?

和/或

第二部分:您是否更新了Web服务(从项目列表中Web服务条目的上下文菜单中更新; atm。我没有VS更具体)。