Webサービスを呼び出すASP.NETWebアプリケーションがあります。このWebサービスはDictionaryオブジェクト(セッション情報を入力しました)を受け取り、それをXMLに変換します。アプリケーションは正常に動作しています(そしてXMLを生成しています)が、この断続的な例外が発生しています(電子メール経由)-そしてユーザーエラーページが表示されます-アプリは正常に機能していますが!
出典:GardenWaste
メッセージ:オブジェクト参照がオブジェクトのインスタンスに設定されていません。StackTrace:C:\ Documents and Settings \ stevd \ My Documents \ Visual Studio 2010 \ Projects \ External Web Apps \ GardenWaste \ GardenWaste \ CardSuccess.aspx.cs:line63のGardenWaste.SignUpSuccess.GWComplete()
行63で失敗する理由がわかりません。この行は、セッションからオブジェクトを取得し、Webサービスに渡す前にディクショナリに追加します。そして、正しいXMLが生成されます(プロセスの終わり)!
この例外に関連するアプリケーションサーバーログには何もありません。誰かがこのエラーが発生している理由に光を当てることができれば、それは素晴らしいことです。必要に応じて、さらに多くのコードを含めたいと思います。
例外が発生するメソッドのコードは次のとおりです。
//This method is called on the Page_Load() event
public void GWComplete()
{
try
{
//invokes the webservice
FocusXMLService.Service1Client client = new FocusXMLService.Service1Client();
Dictionary<string, string> GWDict = new Dictionary<string, string>();
//The Path and Filename used to create the files
GWDict.Add("File", "E:\\ash\\focus\\objrepos\\1\\Input\\GreenWaste\\GARDENW-EXT" + System.DateTime.Now.ToString("ddmmmyyyyhhssffff") + ".xml");
GWDict.Add("SourceName", "FD");
//This is the line that it suggests there's a failure - although it's produced on the XML!
GWDict.Add("UniqueReference", Session["UniqueRef"].ToString());
GWDict.Add("MatterReference", "0001");
GWDict.Add("Status", "CURRENT");
GWDict.Add("Service", "CUSTSERV");
GWDict.Add("ServiceLevel", "GARDENW");
GWDict.Add("Category", "GARDENW");
GWDict.Add("CategoryType", "STARTS");
GWDict.Add("Description", "Garden Waste Scheme");
GWDict.Add("LinkedNoteText", "GCCGW");
GWDict.Add("Title", Session["Title"].ToString());
GWDict.Add("FirstName", Session["FirstName"].ToString());
GWDict.Add("Surname", Session["Surname"].ToString());
GWDict.Add("House", Session["House"].ToString());
GWDict.Add("Street", Session["Street"].ToString());
GWDict.Add("AddressLine2", Session["AddressLine2"].ToString());
GWDict.Add("AddressLine3", Session["AddressLine3"].ToString());
GWDict.Add("PostCode", Session["PostCode"].ToString());
GWDict.Add("MobileNo", Session["MobileNo"].ToString());
GWDict.Add("TelephoneNo", Session["TelephoneNo"].ToString());
GWDict.Add("EmailAddress", Session["EmailAddress"].ToString());
GWDict.Add("AddressLLPGRef", Session["AddressLLPG"].ToString());
GWDict.Add("GWBENEFIT", Session["GWBENEFIT"].ToString());
GWDict.Add("GWBENREF", Session["GWBENREF"].ToString());
GWDict.Add("GWASSISTED", Session["GWASSISTED"].ToString());
GWDict.Add("GWHAVEBINS", Session["GWHAVEBINS"].ToString());
GWDict.Add("GWHOWMANY", Session["GWHOWMANY"].ToString());
GWDict.Add("GWHOWMANYB", Session["GWHOWMANYB"].ToString());
GWDict.Add("GWPAYMETH", "[1] Credit / Debit Card");
GWDict.Add("GWDDINST", "");
GWDict.Add("GWDDSORT", "");
GWDict.Add("GWDDACCT", "");
GWDict.Add("GWDDNAME", "");
GWDict.Add("GWDDMAND", "");
GWDict.Add("GWTERMS", "[Y] Yes");
//sends the Dictionary object to the Web service
bool success = client.CreateXML(GWDict);
if (success)
{
}
else
{Response.Redirect("Error.aspx", false);}
}
catch (Exception ex)
{
//Generates an email notification there's a problem
WebForm_Exceptions.ExceptionNotifier(ex);
}
Session.Abandon();
}
}
}