2014-10-30 8 views
2

이렇게 간단해야하며 뭔가 놓친 것 같습니다. 나는이 애플리케이션의 HTTP쪽에 익숙하지 않아서 어둠 속에서 촬영하는 것처럼 느껴진다.C#을 통해 다중 HTTP 요청 본문에 액세스 IHttpHandler

우리는 B2B EDI를하고 있습니다. 우리는 다중 부분 POST 요청을 받게됩니다. 각 부분은 XML입니다. 각 부분을 추출하고 각각을 XmlDocument로 변환해야합니다.

다음은 내가 작성한 것입니다.

저는 (XmlDocument)f이 작동하지 않을 것이라고 확신하지만 아직 조사 중입니다. 이상하게도, var n = r.ContentLength;에 중단 점을 설정하면 코드가 절대로 해당 중단 점에 도달하지 않습니다. 그것은 단지 외계인에 설정 한 브레이크 포인트를 때린다. return;.

도대체 내가 무엇을 놓치고 있습니까?

+0

는'Files' 유형은 무엇입니까? 명시 적으로'XmlDocument'로 변환 할 수 있습니까? –

+0

'파일'은'HttpFileCollection' 타입입니다. 나는 XmlDocument로 변환 할 수 없다고 확신한다. 이것은 지금 막 탐색 코드입니다. –

답변

2

당신은 HttpPostedFile.InputStream를 사용하고 XDocument 생성자에 그것을 전달해야

foreach (HttpPostedFile postedFile in r.Files) 
{ 
    yield return XDocument.Load(postedFile.InputStream); 
} 

을 아니면 XmlDocument을 원하는 경우 :

foreach (HttpPostedFile postedFile in r.Files) 
{ 
    yield return new XmlDocument().Load(postedFile.InputStream); 
} 
+0

오 마이 맙소사! 나는 그 대답이 아니라 그 대답 자체에 대한 포인터를 기대하고 있었다. 정말 고맙습니다! 이렇게하려면 메서드 시그니처를 변경하고 XmlDocument 대신 XDocument를 반환해야합니다. 그러나 나는 그것을 잡을 것이다! –

+0

@Jeff 당신은 항상'XmlDocument'의 인스턴스를 생성하고 스트림을'Load' 메소드에 넘겨 줄 수 있습니다. –