我有一个简单的WCF服务,但当我尝试在浏览器中打开它时,我收到此错误:
组合代理目标必须至少实现一个接口
标记代码
btnNext.setOnClickListener(new View.OnClickListener() {
...
}
btnNext.setOnClickListener(new View.OnClickListener() {
...
}
ViewPager.OnPageChangeListener viewPagerPageChangeListener = new ViewPager.OnPageChangeListener() {
...
}
public class MyViewPagerAdapter extends PagerAdapter {
...
}
IWSRiesgoLiquidez.cs
<%@ ServiceHost Language="C#" Debug="true" Service="Mvm.SATWeb.ServicesLiquidez.Service.WSRiesgoLiquidez" Factory="Spring.ServiceModel.Activation.ServiceHostFactory" CodeBehind="WSRiesgoLiquidez.svc.cs" %>
实施:WSRiesgoLiquidez.cs
namespace Mvm.SATWeb.ServicesLiquidez.Service
{
// NOTE: If you change the interface name "IWSEnvioTerceros" here, you must also update the reference to "IWSEnvioTerceros" in Web.config.
[ServiceContract]
interface IWSRiesgoLiquidez
{
[OperationContract]
ResultadoOperacionLiquidez consultaIngresosEgresosPuntosDeAtencion(string USUARIO, string CLAVE, string CODIGORED, string FECHA, string HORAINICIAL, string HORAFINAL);
[OperationContract]
ResultadoOperacionLiquidez consultaValorRealPuntoDeAtencion(string USUARIO, string CLAVE, string CODIGORED, string CODIGOPUNTOATENCION);
[OperationContract]
ResultadoOperacionLiquidez consultaValorRealPorPuntosDeatencion(string USUARIO, string CLAVE, string CODIGORED);
}
}
然后在我的web.config中我有:
namespace Mvm.SATWeb.ServicesLiquidez.Service
{
public class WSRiesgoLiquidez : IWSRiesgoLiquidez
{
public ResultadoOperacionLiquidez consultaIngresosEgresosPuntosDeAtencion(string USUARIO, string CLAVE, string CODIGORED, string FECHA, string HORAINICIAL, string HORAFINAL)
{
ResultadoOperacionLiquidez respuesta = new ResultadoOperacionLiquidez();
IServicioMaestros ServicioMaestros = SATWebServiceLocator<IServicioMaestros>.ObtenerServicio();
try
{
using (var riesLiq = new Mvm.SATWeb.ServicesLiquidez.Comun.BusinessDelegate.RiesgoLiqBD())
{
// respuesta.Retorno = riesLiq.consultaIngresosEgresosPuntosDeAtencion(HORAINICIAL, HORAFINAL);
//EnvioTO objLiq = riesLiq.consultaIngresosEgresosPuntosDeAtencion(HORAINICIAL, HORAFINAL);
respuesta = riesLiq.consultaIngresosEgresosPuntosDeAtencion(HORAINICIAL, HORAFINAL);
respuesta.EjecucionExitosa = true;
}
}
catch (Exception ex)
{
respuesta.EjecucionExitosa = false;
respuesta.MensajeValidacion = RemoveLocalizationString(ex.Message);
}
return respuesta;
}
public ResultadoOperacionLiquidez consultaValorRealPuntoDeAtencion(string USUARIO, string CLAVE, string CODIGORED, string CODIGOPUNTOATENCION)
{
ResultadoOperacionLiquidez respuesta = new ResultadoOperacionLiquidez();
return respuesta;
}
public ResultadoOperacionLiquidez consultaValorRealPorPuntosDeatencion(string USUARIO, string CLAVE, string CODIGORED)
{
ResultadoOperacionLiquidez respuesta = new ResultadoOperacionLiquidez();
return respuesta;
}
private string RemoveLocalizationString(string p)
{
string strMensaje = String.Empty;
strMensaje = p.Replace("[", "").Replace(", es-CO]", "");
return strMensaje;
}
}
}
在ServiciosNegocios.config上我有
<sectionGroup name="spring">
<section name="context" type="Spring.Context.Support.ContextHandler, Spring.Core" />
<section name="objects" type="Spring.Context.Support.DefaultSectionHandler, Spring.Core" />
</sectionGroup>
</configSections>
<!-- Configuración de spring con los servicios Web -->
<spring>
<context>
Servicios de seguridad, logging, multilenguaje, etc.
<resource uri="~/Servicios/Infraestructura.config" />
La declaracion de los servicios de negocio (Los BO)
<resource uri="~/Servicios/ServiciosNegocio.config" />
</context>
</spring>
和Infraestructure.config
<?xml version="1.0" encoding="utf-8" ?>
<objects xmlns="http://www.springframework.net">
<description>Declaracion de objetos de negocio</description>
<!--Objetos de negocio - Seguridad-->
<object id="SATWebSeguridadTarget" type="Mvm.SATWeb.Core.Seguridad.Modelo.Negocio.ServicioSeguridad, Mvm.SATWeb.Core">
</object>
<!--Proxy - Seguridad-->
<object id="SATWebSeguridadService"
type="Spring.Aop.Framework.ProxyFactoryObject">
<property name="target">
<ref object="SATWebSeguridadTarget"/>
</property>
<property name="interceptorNames">
<list>
<value>MethodInterceptor</value>
</list>
</property>
</object>
<object id="Mvm.SATWeb.ServicesLiquidez.Service.WSRiesgoLiquidezTarget"
type="Mvm.SATWeb.ServicesLiquidez.Service.WSRiesgoLiquidez, Mvm.SATWeb.ServicesLiquidez">
</object>
<object id="Mvm.SATWeb.ServicesLiquidez.Service.WSRiesgoLiquidez"
type="Spring.Aop.Framework.ProxyFactoryObject">
<property name="target">
<ref object="Mvm.SATWeb.ServicesLiquidez.Service.WSRiesgoLiquidezTarget"/>
</property>
<property name="interceptorNames">
<list>
<value>MethodInterceptor</value>
</list>
</property>
</object>
</objects>
详细错误是这样的:
组合代理目标必须至少实现一个接口。
描述:执行期间发生了未处理的异常 当前的网络请求。请查看堆栈跟踪了解更多信息 有关错误的信息以及它在代码中的起源。
异常详细信息:System.ArgumentException:组合代理目标 必须至少实现一个接口。
来源错误:
执行期间生成了未处理的异常 当前的网络请求。有关的来源和位置的信息 可以使用下面的异常堆栈跟踪来识别异常。
堆栈追踪:
[ArgumentException:组合代理目标必须至少实现 一个界面。]
Spring.Proxy.CompositionProxyTypeBuilder.BuildProxyType()+ 125 5 Spring.ServiceModel.Support.ServiceProxyTypeBuilder.BuildProxyType() +41 Spring.ServiceModel.SpringServiceHost.CreateServiceType(String serviceName,IApplicationContext applicationContext)+177
Spring.ServiceModel.SpringServiceHost..ctor(String serviceName, IApplicationContext applicationContext,Uri [] baseAddresses)+43
Spring.ServiceModel.Activation.ServiceHostFactory.CreateServiceHost(字符串 参考,Uri [] baseAddresses)+141
System.ServiceModel.HostingManager.CreateService(字符串 normalizedVirtualPath)+693
System.ServiceModel.HostingManager.ActivateService(字符串 normalizedVirtualPath)+42
System.ServiceModel.HostingManager.EnsureServiceAvailable(字符串 normalizedVirtualPath)+479