我在<system.serviceModel>
web.config 文件的标签中配置了以下内容:
<system.serviceModel>
<bindings/>
<client/>
<behaviors>
<serviceBehaviors>
<behavior name="serviceTypeBehaviors">
<serviceMetadata httpGetEnabled="true"/>
<serviceDebug includeExceptionDetailInFaults="true"/>
</behavior>
</serviceBehaviors>
</behaviors>
<serviceHostingEnvironment multipleSiteBindingsEnabled="true">
</serviceHostingEnvironment>
<services>
<service behaviorConfiguration="serviceTypeBehaviors" name="AcpService.MainFrameData">
<endpoint address="" binding="basicHttpBinding" contract="AcpService.IMainFrameService" />
<endpoint address="mex" binding="mexHttpBinding" contract="IMetadataExchange" />
</service>
</services>
</system.serviceModel>
我的服务的 XML 是这样的:
<%@ ServiceHost Language="C#" Debug="true" Service="AcpService.MainFrameData" CodeBehind="MainFrameWoData.svc.cs" %>
我的应用程序在Default Web Site的应用程序池中运行,Enable 32-Bit Applications设置为True(因为该服务使用一些旧的数据访问库)。
当我运行它时,我得到这个错误:
“/大型机”应用程序中的服务器错误。
找不到类型“AcpService.MainFrameData”,作为 ServiceHost 指令中的服务属性值提供,或在配置元素 system.serviceModel/serviceHostingEnvironment/serviceActivations 中提供。
异常详细信息: System.InvalidOperationException:类型“AcpService.MainFrameData”,作为 ServiceHost 指令中的服务属性值提供,或在配置元素 system.serviceModel/serviceHostingEnvironment/serviceActivations 中提供。
版本信息: Microsoft .NET Framework 版本:4.0.30319;ASP.NET 版本:4.0.30319.272
我几乎修改了我的<serviceHostingEnvironment>
标签以包含<serviceActions>
参数,但我真的不明白如何做到这一点。
这是我走了多远:
<serviceHostingEnvironment multipleSiteBindingsEnabled="true">
<serviceActivations>
<add factory="System.ServiceModel.Activation.ServiceHostFactory"
relativeAddress="~/mainframe/MainFrameWoData.svc"
service="AcpService.MainFrameData" />
</serviceActivations>
</serviceHostingEnvironment>
我不确定我是否正确执行此操作,并且我不知道要为service=参数插入什么。这MSDN上的信息似乎没用。
这个项目最初有一个不同的名称,但我不得不向服务中添加功能。我不想编辑活动服务,因为这样做意味着所有试图访问我们内部网络上的数据的员工现在都会遇到该错误,因此该服务被复制到一个新项目中,并且正在发布到我们服务器上的新位置。我最好的猜测是web.config
文件中的某些内容(或???)与项目本身的内容不匹配。
有人可以帮我解决这个问题吗?