我是C#领域的新手,由于我的一个项目,我需要创建一个Window服务,在这里我必须调用Web服务并执行一些操作并为其创建日志。首先,我创建了一个Windows应用程序并运行该应用程序,并且该应用程序工作了,但是当我尝试在Windows Service(C#)中进行操作时,同样的事情。该服务正在启动,但不再停止抛出错误:
服务无法启动。 System.ServiceModel.FaultException`1 [System.ServiceModel.ExceptionDetail]:对象引用未设置为对象的实例。 (故障详细信息等于ExceptionDetail,可能由IncludeExceptionDetailInFaults = true创建,其值是:System.NullReferenceException:对象引用未设置为对象的实例。在FMIWebService.FMInteractWebService.ConfirmValidConnection(RequestInfo reqInfo,字符串状态,布尔值checkWorkplaceSurveyApp )在FMIWebService.FMInteractWebService.GetData(RequestInfo reqInfo)在SyncInvokeGetData(Object,Object [],Object [])在System.ServiceModel.Dispatcher.SyncMethodInvoker.Invoke(对象实例,Object []输入,Object []和输出) System.ServiceModel.Dispatcher.ImmutableDispatchRuntime.ProcessMessage5(MessageRpc&rpc)的System.ServiceModel.Dispatcher.DispatchOperationRuntime.InvokeBegin(MessageRpc&rpc)的System.ServiceModel.Dispatcher.ImmutableDispatchRuntime.ProcessMessage11(MessageRpc。
我的service.cs文件是:
protected override void OnStart(string[] args)
{
//Write Logs
WriteToFile("Service is started at " + DateTime.Now);
doWork();
timer.Elapsed += new ElapsedEventHandler(OnElapsedTime);
timer.Interval = 10000;
timer.Enabled = true;
}
public void doWork() {
FMsystemcall obj = new FMsystemcall();
DataSet tickets = obj.FMAPICall("FM_SP_DOVEVIVO_TICKET_PULL","","FALSE","REQNO");
for (int i = 0; i < tickets.Tables[0].Columns.Count - 35; i++)
{
string reqno = tickets.Tables[0].Rows[i]["REQNO"].ToString();
DataSet isss = obj.FMAPICall("FM_SP_DOVEVIVO_TICKET_PULL", reqno, "TRUE");
WriteToFile("IDFM:-" + isss.Tables[0].Rows[0]["IDFM"].ToString());
WriteToFile("STATUS:-" + isss.Tables[0].Rows[0]["Status"].ToString());
WriteToFile("MESSAGE:-" + isss.Tables[0].Rows[0]["Message"].ToString());
WriteToFile("\n");
}
}
任何帮助都会得到高度赞赏!