zoukankan      html  css  js  c++  java
  • 关于 CSLA 服务器部署WCF访问出错的问题

    MDAA项目 在以前的项目中,只要部署,从来没有发生过 通过WCF访问出错的问题,但是此次却出现如下问题:

    2018-04-21 13:45:39,744 [119] ERROR Galaxy.OTC.VWGUI.FrmPaymentMethodManager [(null)] - System.ServiceModel.FaultException: 由于内部错误,服务器无法处理该请求。有关该错误的详细信息,请打开服务器上的 IncludeExceptionDetailInFaults (从 ServiceBehaviorAttribute 或从 <serviceDebug> 配置行为)以便将异常信息发送回客户端,或打开对每个 Microsoft .NET Framework SDK 文档的跟踪并检查服务器跟踪日志。
    Server stack trace: 
       在 System.ServiceModel.Channels.ServiceChannel.ThrowIfFaultUnderstood(Message reply, MessageFault fault, String action, MessageVersion version, FaultConverter faultConverter)
       在 System.ServiceModel.Channels.ServiceChannel.HandleReply(ProxyOperationRuntime operation, ProxyRpc& rpc)
       在 System.ServiceModel.Channels.ServiceChannel.Call(String action, Boolean oneway, ProxyOperationRuntime operation, Object[] ins, Object[] outs, TimeSpan timeout)
       在 System.ServiceModel.Channels.ServiceChannelProxy.InvokeService(IMethodCallMessage methodCall, ProxyOperationRuntime operation)
       在 System.ServiceModel.Channels.ServiceChannelProxy.Invoke(IMessage message)
    Exception rethrown at [0]: 
       在 System.Runtime.Remoting.Proxies.RealProxy.HandleReturnMessage(IMessage reqMsg, IMessage retMsg)
       在 System.Runtime.Remoting.Proxies.RealProxy.PrivateInvoke(MessageData& msgData, Int32 type)
       在 Csla.Server.Hosts.IWcfPortal.Fetch(FetchRequest request)
       在 Csla.DataPortalClient.WcfProxy.Fetch(Type objectType, Object criteria, DataPortalContext context)
       在 Csla.DataPortal.Fetch(Type objectType, Object criteria)
       在 Csla.DataPortal.Fetch[T](Object criteria)
       在 PaymentMethodList.GetByName(String name, Int32 maxResult) 位置 Objects1地区PaymentMethod.cs:行号 89
       在 FrmPaymentMethodManager.QueryItem(Object[] args) 位置 地区FrmPaymentMethodManager.cs:行号 241

    感觉很是诧异,访问其它业务类却没有这个问题,百思不得其解,以为是不是 业务类中的字段 命名有问题,偿试了也是问题依旧。

    最后根据方法访问的顺序思考了一下,是不是 查询参数类有问题啊,干脆照原类的定义照抄了一下,什么也没变,问题解决。

    问题的结论:原参数类是定义在 MDAACommon类的,但现在是其它类库访问它,权限已经不同,不是同一个 包内的类,权限有限制,检查了原类的属性定义如下:

            #region 公有属性
            public string Name
            { get; internal set; }
            #endregion

     把 internal 去掉就OK了。

    记录于此,方便以后复查 

  • 相关阅读:
    HTML 网页创建
    CSS3 opacity
    两数相加的和
    九九乘法表
    Linux下的Makefile初入
    linux 下定义寄存器宏 实现类似于STM32的寄存器操作
    Linux 编译与交叉编译
    linux IMX6 汇编点亮一个LED灯
    Linux基本指令与作用
    C# Task 源代码阅读(2)
  • 原文地址:https://www.cnblogs.com/yyj/p/8901264.html
Copyright © 2011-2022 走看看