[InvalidOperationException: Invalid operation. The connection is closed.]
System.Data.SqlClient.SqlConnection.GetOpenConnection() +2417814
System.Data.SqlClient.SqlConnection.get_ServerVersion() +9
Я получаю эту ошибку, пока я сериализую свой объект.InvalidOperationException: Неверная операция. Соединение закрыто. в Asp.Net MVC при попытке сериализации объекта класса
public string SerializeObj(TemplateData obj)
{
string data = null;
try
{
JavaScriptSerializer js = new JavaScriptSerializer();
** data = js.Serialize(obj); [This is what i am finding issue is][1]**
}
catch (InvalidOperationException iopException)
{
string exception = iopException.Data.ToString();
return exception;
}
return data;
обратите внимание: я не использую соединение с базой данных, когда я сериализую свой объект.
Может ли кто-нибудь предложить мне, как решить эту проблему?
Когда я сериализую свой объект, он берет мой класс с именем TemplateData.
public List<TemplateData> List(string myKey)
{
TemplateBusinessLogic businessLogic = new TemplateBusinessLogic();
TemplateData templateData = new TemplateData();
templateData.key = myKey;
string postKey = businessLogic.SerializeObj(templateData);
string listUrl = MandrillAutomation.Helper.Config.ConfigManager.ConstantsConfig.GetValue("listUrl");
string requestContent = HttpRequestUrl(listUrl, "POST", postKey);
List<TemplateData> listContent = businessLogic.DeserializeObj<List<TemplateData>>(requestContent); // DESERIALIZE OBJECT
for (int i = 0; i <= listContent.Count-1; i++)
{
FileHelper fileHelp = new FileHelper();
fileHelp.SaveTemplate(listContent[i].name, listContent[i].code);
}
//SaveTemplate(listContent); //Save Templates into desire format
log.Info(listContent.Count + " Templates avilable");
log.Info("[ ");
log.Info("Templates :" + GetTemplateName(listContent));
log.Info(" ]");
foreach (var content in listContent)
{
log.Info("Name of Template : " + content.name + " || Slug of Template : " + content.slug + " || in Account : " + myKey);
}
return listContent;
}
И у меня есть класс TemplateData, как показано ниже:
public class TemplateData :DbContext
{
public string key {get; set;}
public string name { get; set; }
public string slug { get; set; }
public string fromEmail { get; set; }
public string fromName { get; set; }
public string subject { get; set; }
public string code { get; set; }
public string text { get; set; }
public string publish { get; set; }
public string[] labels { get; set; }
public string created_at{ get; set; }
public string updated_at { get; set; }
}
Что такое код, который вызывает этот метод и как вы передаете значение 'obj'? –
У этого есть тип моего TemplateData. Подождите, я добавлю его в свой вопрос. –
Я скопировал вашу модель и метод 'SerializeObj()' в новый проект, запустил его и не было ошибки. В коде должно быть что-то еще, что вы не показали нам, что вызывает проблему. –