“ServiceHost仅支持类服务类型”

时间:2013-10-10 21:17:57

标签: asp.net vb.net wcf

出于某种原因,我无法解决此错误。我已经完成了搜索,但找不到任何vb示例。这个web.config我做错了什么?

SalesTracking.svc

<%@ ServiceHost Language="VB" Debug="true" Service="SalesTracking.ISalesTracking" CodeBehind="SalesTracking.svc.vb" %>

SalesTracking.svc.vb

Imports GlobalDir
Imports System.Web.Script.Serialization
Imports System.Reflection
Imports System.Data.SqlClient
Imports System.Web.Configuration
Imports System.Threading
Imports System.ServiceModel.Activation


<AspNetCompatibilityRequirements(RequirementsMode:=AspNetCompatibilityRequirementsMode.Allowed)> _
Public Class WebService
   Implements ISalesTracking



   Public Function GetDataUsingDataContract(ByVal composite As ClientSideData) As ClientSideData Implements ISalesTracking.GetDataUsingDataContract

   End Function
End Class

的Web.config

<?xml version="1.0"?>
<configuration>
    <appSettings/>
    <connectionStrings>
        <add name="dbconstring" connectionString="Data Source="" providerName="System.Data.SqlClient" />
    </connectionStrings>
  <system.web>
      <authentication mode="Windows" />
      <authorization>

          <allow roles="Domain Users" />
          <deny users="*" />
      </authorization>
          <customErrors mode="Off"/>

      <compilation debug="true" strict="false" explicit="true" targetFramework="4.0" />

  </system.web>
  <system.serviceModel>
      <behaviors>
          <serviceBehaviors>
              <behavior name="SalesTracking.WebServiceBehavior">
                  <!-- To avoid disclosing metadata information, set the value below to false and remove the metadata endpoint above before deployment -->
                  <serviceMetadata httpGetEnabled="true"/>
                  <!-- To receive exception details in faults for debugging purposes, set the value below to true.  Set to false before deployment to avoid disclosing exception information -->
                  <serviceDebug includeExceptionDetailInFaults="true"/>
              </behavior>
          </serviceBehaviors>

          <!-- start addition -->
          <endpointBehaviors>
              <behavior name="ServiceAspNetAjaxBehavior" >
                  <enableWebScript/>
              </behavior>
          </endpointBehaviors>
          <!-- end addition -->

      </behaviors>
    <serviceHostingEnvironment multipleSiteBindingsEnabled="true" />
      <services>
          <service behaviorConfiguration="SalesTracking.WebServiceBehavior"
            name="SalesTracking.WebService" >

              <endpoint address="localhost" behaviorConfiguration="ServiceAspNetAjaxBehavior"
                binding="webHttpBinding" bindingConfiguration="NewBinding0" name="SalesTracking.WebService"
                contract="SalesTracking.ISalesTracking">
              </endpoint>
              <endpoint address="mex" binding="mexHttpBinding" contract="IMetadataExchange" />
          </service>
      </services>

  </system.serviceModel>
  <system.webServer>
    <modules runAllManagedModulesForAllRequests="true"/>
  </system.webServer>

</configuration>

1 个答案:

答案 0 :(得分:9)

Service属性必须是实现,而不是接口。

<%@ ServiceHost Language="VB" Debug="true" Service="SalesTracking.WebService" ....