우리 소프트웨어는 온라인 상점에 연결됩니다. 프로세스의 일부가 소프트웨어에서 미리 볼 제품 카탈로그를 다운로드합니다. 우리의 사용자 중 일부는 가게를 사용하는 데 문제가되며,이 로그에이 오류를 막기 위해 보인다몇 명의 사용자가 "System.InvalidOperationException : <html xmlns = ''>을 (를) 얻지 못하는 이유는 무엇입니까?"
<?xml version="1.0"?>
<Category xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
<Id>1</Id>
<Name>Root</Name>
<ParentCategoryId>-1</ParentCategoryId>
<StoryList />
<ChildCategoryList />
</Category>
:
System.InvalidOperationException: There is an error in XML document (2, 2). ---> System.InvalidOperationException: <html xmlns=''> was not expected.
at
Microsoft.Xml.Serialization.GeneratedAssembly.XmlSerializationReaderCategoryInfo.Read4_Category()
를 카탈로그는 XML에서 역 직렬화되고, 여기에 샘플/형식입니다 실제 데이터에는 해당 목록에 이야기와 음식이 있습니다.
코드
취득하는 XML 데이터는 다음과 같습니다var request = HttpWebRequest.Create(_onlineStore + string.Format("integration/category/catalogue.ashx?username={0}&password={1}", HttpUtility.UrlEncode(username), HttpUtility.UrlEncode(password))) as HttpWebRequest;
request.Method = "GET";
using (var response = request.GetResponse() as HttpWebResponse)
{
var serializer = new XmlSerializer(typeof(CategoryInfo));
CategoryInfo rtnVal = serializer.Deserialize(response.GetResponseStream()) as CategoryInfo;
return rtnVal;
}
그리고 CategoryInfo 클래스 :
[Serializable]
[XmlRoot("Category")]
public class CategoryInfo
{
public CategoryInfo()
{
ChildCategoryList = new List<CategoryInfo>();
StoryList = new List<StoryInfo>();
}
public int Id
{
get;
set;
}
public string Name
{
get;
set;
}
public int ParentCategoryId
{
get;
set;
}
[XmlArrayItem("Category")]
public List<CategoryInfo> ChildCategoryList
{
get;
set;
}
[XmlArrayItem("Story")]
public List<StoryInfo> StoryList
{
get;
set;
}
}
여기서 중요한 것은이 대부분을 위해 노력하고 있다는 점이다. 나는 잘못 될 수 있으며 코드에 끔찍한 결함이있을 수 있으며 우연히 대부분의 사람들에게만 작동하지만, 문제는 사용자 컴퓨터 또는 네트워크 연결에 있다고 생각됩니다.
일반적인 문제 중 하나는 고객이 사용해야하는 프록시 및/또는 방화벽을 둘러 보는 것입니다. 다시 한 번 대다수는 하나를 사용해야하고 카탈로그 다운로드와 프로그램이 일반적으로 작동합니다.
누군가가 코드 또는 XML 형식에서 잘못된 점을 발견 할 수없는 한, 내가 실제로 찾고있는 대답은 소수의 사용자에게 발생하는 이유이며 사용자 컴퓨터에 액세스하지 않고 디버깅 할 수있는 최상의 방법입니다. 특히 기술에 정통한 사용자가 많은 시간을 손에 쥐고 있습니다.
오류 메시지에 표시된 ""은 어디에서 오는가? – Oded
이 줄 : "CategoryInfo rtnVal = serializer.Deserialize (response.GetResponseStream()) as CategoryInfo;" 코드에서 XML 데이터를 얻으려면 – Septih
정적 코드가 있습니까? –