2010-03-30 4 views
0

우리 소프트웨어는 온라인 상점에 연결됩니다. 프로세스의 일부가 소프트웨어에서 미리 볼 제품 카탈로그를 다운로드합니다. 우리의 사용자 중 일부는 가게를 사용하는 데 문제가되며,이 로그에이 오류를 막기 위해 보인다몇 명의 사용자가 "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 형식에서 잘못된 점을 발견 할 수없는 한, 내가 실제로 찾고있는 대답은 소수의 사용자에게 발생하는 이유이며 사용자 컴퓨터에 액세스하지 않고 디버깅 할 수있는 최상의 방법입니다. 특히 기술에 정통한 사용자가 많은 시간을 손에 쥐고 있습니다.

+0

오류 메시지에 표시된 ""은 어디에서 오는가? – Oded

+0

이 줄 : "CategoryInfo rtnVal = serializer.Deserialize (response.GetResponseStream()) as CategoryInfo;" 코드에서 XML 데이터를 얻으려면 – Septih

+0

정적 코드가 있습니까? –

답변

0

이것은 로컬 네트워크 에이전트가 요청을 페이지의 html로 리디렉션함으로써 발생합니다.

관련 문제