2011-05-16 35 views
2

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

例如

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> 

有人可以帮我做我做错了吗?这让我疯狂。

回答

3

好的一件事是:您的服务名称不一致。

在服务实现类,你必须:

namespace MyNameSpace.WebWCF 
{ 
    public class BusinessV1 

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

Service="MyNameSpace.WebWCF.BusinessV1" 

,但在你的web.config,您可以使用:

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

您的服务实施是一个定义了服务名称 - 与命名空间完全限定:MyNameSpace.WebWCF.BusinessV1

所以你需要使用这个完全合格的名字 - 和正是是 - 在你的*.svc文件(OK!)和你的web.config

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

使用MyNameSpace.WebWCF.BusinessV1 insstead的MyNameSpace.WebWCF.Business_v1

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

0

两个问题,其hopfeully可以帮助:

1:你确定移动后的合同仍对应于web服务?

和/或

第二:你有没有更新的web服务(从项目列表中的网络服务条目的上下文菜单; ATM我没有VS更具体)。

+0

Hi Ofi。我不知道如何测试第一点。在部署失败后,它在本地运行正常。 也使用wcftest客户端失败 – 2011-05-16 03:18:52