WCF中有关serviceHostingEnvironment的未处理错误

时间:2012-04-10 09:14:33

标签: c# wcf rest

我是一个尝试WCF的新手。我正在尝试使用android访问WCF,我遇到了麻烦,根据我的研究,json需要访问WCF,所以我尝试将其更改为json。

我将界面更改为对象类型并开始出现如下错误

The exception message is: The type 'AddItemService.Login', provided as the Service attribute value in the ServiceHost directive, or provided in the configuration element system.serviceModel/serviceHostingEnvironment/serviceActivations could not be found..]

我的界面方法:

[OperationContract]
        [WebInvoke(Method = "POST", UriTemplate = "Login", BodyStyle = WebMessageBodyStyle.WrappedRequest, 
            ResponseFormat = WebMessageFormat.Json, RequestFormat = WebMessageFormat.Json)]
        [Description("Returns the Login User ID")]
        int GetUserId(Login login);

我的web.config:

<?xml version="1.0"?>
<configuration>
  <system.web>
    <compilation debug="true" targetFramework="4.0" />
  </system.web>
  <system.serviceModel>
    <services>
      <service name="AddItemService.Login"
                behaviorConfiguration="RESTBehavior">
        <endpoint address=""
                  binding="webHttpBinding"
                  contract="AddItemService.ILogin"
                   behaviorConfiguration="MyEndpointBehavior"/>
      </service>
    </services>
    <behaviors>
      <serviceBehaviors>
        <behavior name="RESTBehavior">
          <serviceMetadata httpGetEnabled="true"/>
          <serviceDebug includeExceptionDetailInFaults="true"/>
        </behavior>
      </serviceBehaviors>
      <endpointBehaviors>
        <behavior name="MyEndpointBehavior">
          <webHttp helpEnabled="true"/>
        </behavior>
      </endpointBehaviors>
    </behaviors>
    <serviceHostingEnvironment multipleSiteBindingsEnabled="true" />
  </system.serviceModel>
</configuration>

我不知道为什么它不起作用。有人可以帮帮我吗?

1 个答案:

答案 0 :(得分:1)

听起来像.svc文件中为WCF服务指定的服务类型(实际的标记文件,而不是代码隐藏文件)引用的服务类类型不存在。

如果右键单击Visual Studio中的.svc文件并选择“查看标记”,则该文件中ServiceHost指令的“Service”属性需要包含实现WCF服务接口的类的名称。听起来它正在引用AddItemService.Login,但这不存在。