" ServiceHost的只支持类服务类型" [英] "ServiceHost only supports class service types"
本文介绍了" ServiceHost的只支持类服务类型"的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
出于某种原因,我不能让过去的这个错误。我做了搜索,但找不到任何VB实例。我是什么不对的web.config文件做什么?
SalesTracking.svc
<%@ ServiceHost的语言=VB调试=真正的服务=SalesTracking.ISalesTrackingcodeBehind =SalesTracking.svc.vb%GT;
SalesTracking.svc.vb
进口GlobalDir
进口System.Web.Script.Serialization
进口的System.Reflection
进口System.Data.SqlClient的
进口System.Web.Configuration
进口的System.Threading
进口System.ServiceModel.Activation
<AspNetCompatibilityRequirements(RequirementsMode:=AspNetCompatibilityRequirementsMode.Allowed)> _
公共类的WebService
实现ISalesTracking 公共职能GetDataUsingDataContract(BYVAL复合体ClientSideData)由于ClientSideData器具ISalesTracking.GetDataUsingDataContract 结束功能
末级
的Web.config
&LT;?XML版本=1.0&GT?;
&LT;结构&gt;
&LT;的appSettings /&GT;
&LT;&是connectionStrings GT;
&LT;添加名称=dbconstring的connectionString =数据源=的providerName =System.Data.SqlClient的/&GT;
&LT; /&是connectionStrings GT;
&LT;&的System.Web GT;
&LT;身份验证模式=窗口/&GT;
&LT;授权&GT; &LT;让角色=域用户/&GT;
&LT;拒绝用户=*/&GT;
&LT; /授权&GT;
&LT;的customErrors模式=关/&GT; &LT;编译调试=真正的严=false的明确=真targetFramework =4.0/&GT; &LT; /system.web>
&LT; system.serviceModel&GT;
&LT;&行为GT;
&LT; serviceBehaviors&GT;
&LT;行为NAME =SalesTracking.WebServiceBehavior&GT;
&LT;! - 为了避免泄露的元数据信息,下面设置为false的价值和部署之前删除上面的元数据终结点 - &GT;
&LT; serviceMetadata httpGetEnabled =真/&GT;
&LT;! - 要接收故障中的异常细节进行调试,下面设置为true值。设置为false部署之前,以避免泄露异常信息 - &GT;
&LT; serviceDebug includeExceptionDetailInFaults =真/&GT;
&LT; /行为&GT;
&LT; / serviceBehaviors&GT; &LT;! - 开始加成 - &GT;
&LT; endpointBehaviors&GT;
&LT;行为NAME =ServiceAspNetAjaxBehavior&GT;
&LT; enableWebScript /&GT;
&LT; /行为&GT;
&LT; / endpointBehaviors&GT;
&LT;! - 端添加 - &GT; &LT; /行为&GT;
&LT; serviceHostingEnvironment multipleSiteBindingsEnabled =真/&GT;
&LT;服务和GT;
&LT;服务behaviorConfiguration =SalesTracking.WebServiceBehavior
NAME =SalesTracking.WebService&GT; &LT;端点地址=localhost的behaviorConfiguration =ServiceAspNetAjaxBehavior
绑定=的WebHttpBindingbindingConfiguration =NewBinding0NAME =SalesTracking.WebService
合同=SalesTracking.ISalesTracking&GT;
&LT; /端点&GT;
&LT;端点地址=MEX绑定=mexHttpBinding合同=IMetadataExchange接口/&GT;
&LT; /服务&GT;
&LT; /服务&GT; &LT; /system.serviceModel>
&LT; system.webServer&GT;
&LT;模块runAllManagedModulesForAllRequests =真/&GT;
&LT; /system.webServer>&LT; /结构&gt;
解决方案
服务
属性必须实现,而不是接口。
&LT;%@ ServiceHost的语言=VB调试=真正的服务=SalesTracking.WebService......
For some reason I can't get past this error. I've done searching, but can't find any vb examples. What am I doing wrong with this 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>
解决方案
Service
attribute must be the implementation, not interface.
<%@ ServiceHost Language="VB" Debug="true" Service="SalesTracking.WebService" ....
这篇关于&QUOT; ServiceHost的只支持类服务类型&QUOT;的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文