WCF静态变量在服务被调用时 没有值是什么情况?

问题描述

WCF静态变量在服务被调用时没有值是什么情况?

解决方案

解决方案二:
你把相关的代码贴出来
解决方案三:
什么叫没有值,里面是null?另外你怎么知道没有值,写日志了吗
解决方案四:
没赋值??
解决方案五:
在onstart里面调用的赋值方法,直接附加到服务调试的话是有值的,但是当用web项目调用wcf服务时,就没有值了。好像静态列表没有保存下来,不知道是不是没有执行onstart,但是不应该是服务启动时就执行过了吗?
解决方案六:
引用2楼Z65443344的回复:

什么叫没有值,里面是null?另外你怎么知道没有值,写日志了吗

断点调试没有值
解决方案七:
引用3楼starfd的回复:

没赋值??

在onstart里面赋值了的
解决方案八:
怀疑onstart不执行,在onstart里写日志,看到底执行没执行
解决方案九:
还有,右键查找所有引用,看除了初始化之外,还有哪里会给它赋值,是否重新赋值的时候没有取到值,赋给它的是空值.
解决方案十:
你的绑定方式是什么样子的?调用方式是什么样的(PerCall?PerPexx,Single?)?OnStart又是什么方法?是Application_Start吗?
解决方案十一:
引用9楼starfd的回复:

你的绑定方式是什么样子的?调用方式是什么样的(PerCall?PerPexx,Single?)?OnStart又是什么方法?是Application_Start吗?

是寄宿在winservice上面的wcf服务,winservice启动时重写onstart方法,在这里面获取数据填充到静态list中,然后调用wcf方法时获取不到这个List
解决方案十二:
引用10楼u011690939的回复:

Quote: 引用9楼starfd的回复:
你的绑定方式是什么样子的?调用方式是什么样的(PerCall?PerPexx,Single?)?OnStart又是什么方法?是Application_Start吗?

是寄宿在winservice上面的wcf服务,winservice启动时重写onstart方法,在这里面获取数据填充到静态list中,然后调用wcf方法时获取不到这个List

list为空
解决方案十三:
没遇到过,你这个静态变量一定要在Start的时候赋值吗?不能在静态构造器里面赋值么?
解决方案十四:
你把你的OnStart方法搬到web的Application_Start方法里去呢
解决方案十五:
引用12楼lc2737的回复:

没遇到过,你这个静态变量一定要在Start的时候赋值吗?不能在静态构造器里面赋值么?

是啊,因为要定时去扫描这个静态列表,并根据条件更新列表中的值
解决方案:
引用13楼starfd的回复:

你把你的OnStart方法搬到web的Application_Start方法里去呢

这个。。。放到application_Start里是什么用意呢?
解决方案:
你分清楚了服务端和客户端吗?web客户端是通过soap与服务端通讯的,中间要经过序列化也就是远程对象->序列化->byte[]->反序列化->本地对象这是类似于深拷贝,两个对象值完全一样,但却分别位于服务端与客户端,类似的还有remoting
解决方案:
引用16楼dongxinxi的回复:

你分清楚了服务端和客户端吗?web客户端是通过soap与服务端通讯的,中间要经过序列化也就是远程对象->序列化->byte[]->反序列化->本地对象这是类似于深拷贝,两个对象值完全一样,但却分别位于服务端与客户端,类似的还有remoting

然后呢?为什么在windows服务中初始化过后的静态列表在wcf服务中会没有值呢?静态列表是public的
解决方案:
引用14楼u011690939的回复:

Quote: 引用12楼lc2737的回复:
没遇到过,你这个静态变量一定要在Start的时候赋值吗?不能在静态构造器里面赋值么?

是啊,因为要定时去扫描这个静态列表,并根据条件更新列表中的值

你在这里是怎么做的?是先把列表中的值清空吗?还是值取完了一次性重新赋值?

时间: 2024-10-22 18:00:44

WCF静态变量在服务被调用时 没有值是什么情况?的相关文章

WCF服务端运行时架构体系详解[下篇]

作为WCF中一个核心概念,终结点在不同的语境中实际上指代不同的对象.站在服务描述的角度,我们所说的终结点实际上是指ServiceEndpoint对象.如果站在WCF服务端运行时框架来说,终结点实际上指代的是终结点分发器(EndpointDispatcher).而ServiceEndpoint与EndpointDispatcher是一一匹配的,并且前者是创建后者的基础.而终结点分发器具有自己的运行,即分发运行时(DispatchRuntime). 目录 一.终结点分发器(EndpointDispa

asp.net中静态变量和非静态变量的区别

静态变量:静态变量使用 static 修饰符进行声明在所属类被装载时创建通过类进行访问所属类的所有实例的同一静态变量都是同一个值非静态变量:不带有 static 修饰符声明的变量称做非静态变量在类被实例化时创建通过对象进行访问同一个类的不同实例的同一非静态变量可以是不同的值示例: [复制到剪贴板]CODE: using System;using System.Collections.Generic;using System.Text;namespace Example01{    class P

JNI/NDK开发指南(七)——C/C++访问Java实例变量和静态变量

       转载请注明出处:http://blog.csdn.net/xyang81/article/details/42836783        在上一章中我们学习到了如何在本地代码中访问任意Java类中的静态方法和实例方法,本章我们也通过一个示例来学习Java中的实例变量和静态变量,在本地代码中如何来访问和修改.静态变量也称为类变量(属性),在所有实例对象中共享同一份数据,可以直接通过[类名.变量名]来访问.实例变量也称为成员变量(属性),每个实例都拥有一份实例变量数据的拷贝,它们之间修

android项目中_做什么操作,r文件会自动生成相应的静态变量

问题描述 android项目中_做什么操作,r文件会自动生成相应的静态变量 android项目中_做什么操作,r文件会自动生成相应的静态变量 这个r文件的静态变量哪些方法会调用呢 解决方案 有听过自动生成R文件的,没听说过R文件还能自动生成静态变量的

【JAVA】类继承对父类静态变量的操作

对静态变量的操作存在继承时还是有一些模糊,做了个简单的测试: class Test { private String mName; public Test(String name) { setName(name); } public void setName(String name) { mName = name; } public String getName() { System.out.println(mName); return mName; } } class A { protecte

WCF服务端运行时架构体系详解[上篇]

WCF的服务端架构体系又可以成为服务寄宿端架构体系.我们知道,对于一个基于某种类型的服务进行寄宿只需要使用到一个唯一的对象,那就是ServiceHost.甚至在某种语境下,我们所说的服务实际上就是指的对应的ServiceHost对象.整个服务寄宿过程包括两个阶段,即服务描述的创建和服务端运行框架的建立.而第一个阶段创建的服务描述是为了第二个阶段对服务端运行时框架建立服务的,所以我们有必要在对服务描述进行简单的介绍. 目录: 一.从服务描述(Service Description)谈起 二.服务端

WCF服务端运行时架构体系详解[续篇]

终结点分发器在自己的运行时中对请求消息的处理最终肯定体现在相应操作的执行.如果从服务描述的角度来看,操作是一个OperationDescription对象.而服务端分发运行时中的操作则代表的是一个DispatchOperation对象.作为服务描述的一部分,服务所有终结点的所有操作描述(OperationDescription)在ServiceHost创建过程中被创建.而当ServiceHost被正常开始时,这些操作描述最终转换成分发操作(DispatchOperation).而Dispatch

COM(VB/VBA/Script)利用服务标记调用WCF服务之四:使用配置文件

这几天友人同学说他在COM利用服务标记调用WCF服务的时候遇到一个问题,就是他返回的的Soap消息 大于65536这个wsHttpBinding的缺省值,引发调用错误.需要将MaxReceivedMessageSize更改成可以容纳 大消息内容的值.在我前面的三篇文章中使用的都是缺省的wsHttpBinding,所以不存在这个问题.现在 需要更改缺省值自然就需要增加配置来达到目的.目前最关键的问题就是:是否能让VB/VBA/Script来使 用配置文件呢?如果可以,那如何让VB,VBA, Scr

COM(VB/VBA/Script)利用服务标记调用WCF服务之三使用WSDL契约

前面我们介绍了使用MEX契约的服务标记在COM中调用WCF服务,这种方式是通过MEX终结点动态取得元 数据,使用起来是比较方便:但是有时服务的元数据中可能包含恶意用户可以利用的关于应用程序的敏感 信息,也就是说为了安全考虑有些服务可能不会通过MEX公布元数据信息.如果哦某些服务没有公布元数 据信息,用类型化有比较麻烦,针对这种情况我们该如何在COM中调用WCF服务呢?这时我们可以使用WSDL 契约来进行WCF服务的调用,使用这种方式和使用MEX类似,同样不需要进行类型的注册,信息都是通过动 态得