手机版

百科游戏 手游攻略

discuznt(asp.net c# 邮件定时发送。)

百科 2026-02-17 17:21:27 手游攻略 阅读:9936次

大家好,今天来为大家解答discuznt这个问题的一些问题点,包括asp.net c# 邮件定时发送。也一样很多人还不知道,因此呢,今天就来为大家分析分析,现在让我们一起来看看吧!如果解决了您的问题,还望您关注下本站哦,谢谢~

如何调用webservice接口 ajax

Java调用WebService可以直接使用Apache提供的axis.jar自己编写代码,或者利用Eclipse自动生成WebServiceClient代码,利用其中的Proxy类进行调用。理论上是一样的,只不过用Eclipse自动生成代码省事些。

1、编写代码方式:

packagecom.yudun.test;

importjava.rmi.RemoteException;

importorg.apache.axis.client.Call;

importorg.apache.axis.client.Service;

importorg.apache.axis.message.PrefixedQName;

importorg.apache.axis.message.SOAPHeaderElement;

importcom.cezanne.golden.user.Exception;

importcom.cezanne.golden.user.UserManagerServiceProxy;

importjavax.xml.namespace.QName;

importjava.net.MalformedURLException;

importjavax.xml.rpc.ServiceException;

importjavax.xml.soap.Name;

importjavax.xml.soap.SOAPException;

publicclasstestWebService{

publicstaticStringgetResult()throwsServiceException,MalformedURLException,RemoteException,SOAPException

{

//标识WebService的具体路径

Stringendpoint="WebService服务地址";

//创建Service实例

Serviceservice=newService();

//通过Service实例创建Call的实例

Callcall=(Call)service.createCall();

//将WebService的服务路径加入到call实例之中.

call.setTargetEndpointAddress(newjava.net.URL(endpoint));//为Call设置服务的位置

//由于需要认证,故需要设置调用的SOAP头信息。

NameheaderName=newPrefixedQName(newQName("发布的wsdl里的targetNamespace里的url","string_itemName"));

org.apache.axis.message.SOAPHeaderElementheader=newSOAPHeaderElement(headerName);

header.addTextNode("blablabla");

call.addHeader(header);

//SOAPHeaderElementsoapHeaderElement=newSOAPHeaderElement("发布的wsdl里的targetNamespace里的url","SoapHeader");

//soapHeaderElement.setNamespaceURI("发布的wsdl里的targetNamespace里的url");

//try

//{

//soapHeaderElement.addChildElement("string_itemName").setValue("blablabla");

//}

//catch(SOAPExceptione)

//{

//e.printStackTrace();

//}

//call.addHeader(soapHeaderElement);

//调用WebService的方法

org.apache.axis.description.OperationDescoper;

org.apache.axis.description.ParameterDescparam;

oper=neworg.apache.axis.description.OperationDesc();

oper.setName("opName");

param=neworg.apache.axis.description.ParameterDesc(newjavax.xml.namespace.QName("","arg0"),org.apache.axis.description.ParameterDesc.IN,newjavax.xml.namespace.QName("http://www.w3.org/2001/XMLSchema","string"),java.lang.String.class,false,false);

param.setOmittable(true);

oper.addParameter(param);

param=neworg.apache.axis.description.ParameterDesc(newjavax.xml.namespace.QName("","arg1"),org.apache.axis.description.ParameterDesc.IN,newjavax.xml.namespace.QName("http://www.w3.org/2001/XMLSchema","string"),java.lang.String.class,false,false);

param.setOmittable(true);

oper.addParameter(param);

param=neworg.apache.axis.description.ParameterDesc(newjavax.xml.namespace.QName("","arg2"),org.apache.axis.description.ParameterDesc.IN,newjavax.xml.namespace.QName("http://www.w3.org/2001/XMLSchema","string"),java.lang.String.class,false,false);

param.setOmittable(true);

oper.addParameter(param);

oper.setReturnType(newjavax.xml.namespace.QName("http://www.w3.org/2001/XMLSchema","string"));

oper.setReturnClass(java.lang.String.class);

oper.setReturnQName(newjavax.xml.namespace.QName("","return"));

oper.setStyle(org.apache.axis.constants.Style.WRAPPED);

oper.setUse(org.apache.axis.constants.Use.LITERAL);

oper.addFault(neworg.apache.axis.description.FaultDesc(

newjavax.xml.namespace.QName("发布的wsdl里的targetNamespace里的url","Exception"),

"Exception",

newjavax.xml.namespace.QName("发布的wsdl里的targetNamespace里的url","Exception"),

true

));

call.setOperation(oper);

call.setOperationName(newjavax.xml.namespace.QName("发布的wsdl里的targetNamespace里的url","opName"));

//调用WebService,传入参数

Stringres=(String)call.invoke(newObject[]("arg0","arg1"));

System.out.println("===============");

returnres;

}

publicstaticvoidmain(String[]args){

try{

System.out.println(getResult());

}catch(MalformedURLExceptione){

e.printStackTrace();

}catch(RemoteExceptione){

e.printStackTrace();

}catch(ServiceExceptione){

e.printStackTrace();

}catch(SOAPExceptione){

e.printStackTrace();

}

}

}

2、利用Eclipse自动生成WebServiceclient代码就容易多了:(由于还不会发图片,就用语言描述了,大家酬和看吧。。。)

首先,newproject,选择other,在输入框中输入WebServiceClient,选中搜索后的结果,点击Next,在Servicedefinition中输入WebService的发布地址,点击Finish

这样,WebServiceClient代码已经生成好了。

接下来写一个Test类,在main函数中输入如下代码:

Stringendpoint="服务器的WebService的地址";

YourWebServiceNameProxyumsp=newYourWebServiceNameProxy(endpoint);

try{

StringresultStr=umsp.opMethod("arg0","arg1");

System.out.println(resultStr);

}catch(Exceptione){

System.out.println("异常");

e.printStackTrace();

}catch(RemoteExceptione){

System.out.println("RemoteException异常");

e.printStackTrace();

}

asp.net c# 邮件定时发送。

在ASP.NET中使用计时器(Timer)

我在实验中发现在ASP.NET中可以使用计时器(Timer)完成一些定时动作。这一点可能会对我们的一些Web程序有益。

下面首先介绍我测试使用的一个例子:

首先在global.asax中的Application_OnStart事件过程中定义计时器,代码如下:

[VB.NET]global.asax

<%@importNamespace="System.Timers"%>

SubApplication_OnStart(senderAsObject,eAsEventArgs)

'创建一个计时器,单位:毫秒

DimaTimerAsNewSystem.Timers.Timer(10000)

'将Fresher指定为计时器的Elapsed事件处理程序

AddHandleraTimer.Elapsed,AddressOfFresher

'AutoReset属性为true时,每隔指定时间循环一次;

'如果为false,则只执行一次。

aTimer.AutoReset=True

aTimer.Enabled=True

'先给Application("TimeStamp")指定一个初值

Application.Lock()

Application("TimeStamp")=DateTime.Now.ToString()

Application.UnLock()

EndSub

SubFresher(senderAsObject,eAsElapsedEventArgs)

Application.Lock()

Application("TimeStamp")=DateTime.Now.ToString()

Application.UnLock()

EndSub

然后我们简单写一个test.aspx来查看Application("TimeStamp")的值。代码如下:

[VB.NET]test.aspx

<%

Response.Write(Application("TimeStamp"))

%>

分析:

根据global.asax中的代码,我们设定了一个计时器,每隔10秒钟执行一次Fresher()过程;在Fresher()过程中我们事实上只是重新写入了一个Application("TimeStamp")新值。换句话说,Application("TimeStamp")的值是应该每隔10秒钟更新一次的。

是不是这样的呢?通过test.aspx的反复刷新观察Application("TimeStamp")的值,的确发现这个值在每隔10秒地变化一次,而其他时候则保持不变。与我们的预期是一致的。

意义:

通过引入计时器我们可以在ASP.NET的全局性程序(Application)中灵活的使用计时器完成一些定时操作,比如:在社区/论坛系统中,每隔5分钟更新一次在线用户列表,每隔1个小时更新一次用户经验值,或者每隔一天备份一次关键数据等等。这个思路应该是很诱人的。

探讨:

Q:是否在ASP.NET代码的任何地方都可以使用计时器呢?

A:我没有测试过在普通*.aspx中插入计时器的情形。但从B/S程序的特点来看,即使在*.aspx中插入计时器可行,也不是一种好的选择。因为对于B/S程序来说,服务器接到客户端的请求本身就是一个事件,在这个事件处理过程中,服务器必须迅速的作出回应,为客户端产生相应的HTML代码,然后结束这一过程。如果在*.aspx使用计时器(如果允许的话),则第一没有太大必要,第二很容易使系统因为插入的计时器过多(因为每一次*.aspx的执行都有可能插入一个新的计时器)而使系统瘫痪。

因此,我建议只在global.asax的Application_OnStart中使用比较安全一些

OK,关于discuznt和asp.net c# 邮件定时发送。的内容到此结束了,希望对大家有所帮助。

本文链接:https://bk.89qw.com/a-984629

最近发表
网站分类