Вопрос

Я вызываю осевой веб-сервис из WCF. Запрос работает нормально, но я возвращаю нулевые значения. Используя Fiddler, я смог определить, что ответ является базовым в виде Transfer-Encoding: chunked. Это означает, что в ответе есть контрольные символы ДО xml. WCF НЕ выдает ошибку. Он просто движется, и объект, который должен быть возвращен методом, является нулевым. Может кто-нибудь сказать мне, как сказать WCF, как правильно обрабатывать фрагментированное закодированное сообщение HTTP 1.1?

Вот ссылка на того, кто задает вопрос для сравнения:

http://www.biztalkgurus.com/forums/t/10860.aspx

Ответ мыла:

HTTP/1.1 200 OK
Date: Wed, 06 May 2009 15:34:41 GMT
Server: Apache
Set-Cookie: JSESSIONID=01A43C26DB5E284B70F1F6D466D5CD5D; Path=/arsys
Keep-Alive: timeout=15, max=100
Connection: Keep-Alive
Transfer-Encoding: chunked
Content-Type: text/xml;charset=utf-8

ba7
<?xml version="1.0" encoding="utf-8"?><soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"><soapenv:Body><ns0:HelpDesk_QueryList_ServiceResponse xmlns:ns0="urn:Port" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
    <ns0:getListValues>
        <ns0:Assigned_Group>CHQ-TSR-WEL</ns0:Assigned_Group>
        <ns0:Assigned_Group_Shift_Name/>
        <ns0:Assigned_Support_Company>IT Support</ns0:Assigned_Support_Company>
        <ns0:Assigned_Support_Organization>WH</ns0:Assigned_Support_Organization>
        <ns0:Assignee>David</ns0:Assignee>
        <ns0:Categorization_Tier_1>ADD</ns0:Categorization_Tier_1>
        <ns0:Categorization_Tier_2>HARDWARE</ns0:Categorization_Tier_2>
        <ns0:Categorization_Tier_3>DESKTOP/LAPTOP/NOTEBOOK</ns0:Categorization_Tier_3>
        <ns0:City/>
        <ns0:Closure_Manufacturer/>
        <ns0:Closure_Product_Category_Tier1/>
        <ns0:Closure_Product_Category_Tier2/>
        <ns0:Closure_Product_Category_Tier3/>
        <ns0:Closure_Product_Model_Version/>
        <ns0:Closure_Product_Name/>
        <ns0:Company>IT Support</ns0:Company>
        <ns0:Contact_Company>IT Support</ns0:Contact_Company>
        <ns0:Contact_Sensitivity>Standard</ns0:Contact_Sensitivity>
        <ns0:Country/>
        <ns0:Department>WEL</ns0:Department>
        <ns0:Summary>Old PC to be Cascaded
</ns0:Summary>
        <ns0:Notes> User Name:
Make: Dell
Model: Latitude D600
Serial Number: 
Location: </ns0:Notes>
        <ns0:First_Name>James</ns0:First_Name>
        <ns0:Impact>3-Moderado/Limitado</ns0:Impact>
        <ns0:Incident_Number>INC000000009017</ns0:Incident_Number>
        <ns0:Internet_E-mail></ns0:Internet_E-mail>
        <ns0:Last_Name>Goodrich</ns0:Last_Name>
        <ns0:Manufacturer/>
        <ns0:Middle_Initial/>
        <ns0:Organization>--</ns0:Organization>
        <ns0:Phone_Number>+326</ns0:Phone_Number>
        <ns0:Priority>Medium</ns0:Priority>
        <ns0:Priority_Weight/>
        <ns0:Product_Categorization_Tier_1>HARDWARE</ns0:Product_Categorization_Tier_1>
        <ns0:Product_Categorization_Tier_2>DESKTOP/LAPTOP/NOTEBOOK</ns0:Product_Categorization_Tier_2>
        <ns0:Product_Categorization_Tier_3>CASCADE PC</ns0:Product_Categorization_Tier_3>
        <ns0:Product_Model_Version/>
        <ns0:Product_Name/>
        <ns0:Region></ns0:Region>
        <ns0:Reported_Source/>
        <ns0:Resolution>New PC
Make: 
Model: 
Serial Number: 
Ship to:
Shipping Carrier:
Tracking Number:</ns0:Resolution>
        <ns0:Resolution_Category/>
        <ns0:Resolution_Category_Tier_2/>
        <ns0:Resolution_Category_Tier_3/>
        <ns0:Service_Type>User Service Request</ns0:Service_Type>
        <ns0:Site>Salt Lake City</ns0:Site>
        <ns0:Site_Group/>
        <ns0:Status>Assigned</ns0:Status>
        <ns0:Status_Reason/>
        <ns0:Urgency>3-Medium</ns0:Urgency>
        <ns0:VIP>No</ns0:VIP>
    </ns0:getListValues>
</ns0:HelpDesk_QueryList_ServiceResponse></soapenv:Body></soapenv:Envelope>
0
Это было полезно?

Решение

Я не думаю, что вы сможете заставить это работать, поскольку IIS (или клиент, в зависимости от того, на какой стороне вы находитесь) должен удалить это, прежде чем он попадет к вам, так же, как вы не должны вручную -zzip запрос.

В этом случае кажется, что chunked плохо поддерживается серверным программным обеспечением.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top