2012-02-02 4 views
2

웹 서비스로 데이터를 보내고 데이터를 XML 파일에 저장하는 프로그램이 있습니다. 나는 클래스 나 메소드가 있으면 서비스로 이동하여 텍스트 파일로 덤프하는 비누 객체를 잡을 수 있는지 알고 싶습니다. 아무도 이걸하는 방법을 말해 줄 수 있습니까?파일로 SOAP을 덤프하십시오.

편집 1 :

확인 코멘트에 게시 주제 거쳐 내가 같이 내 web.config 파일을 편집 할 수 있도록 :

<?xml version="1.0"?> 
<configuration> 

<configSections> 
    <sectionGroup name="applicationSettings" type="System.Configuration.ApplicationSettingsGroup, System, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" > 
     <section name="XML_New.Properties.Settings" type="System.Configuration.ClientSettingsSection, System, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" requirePermission="false" /> 
    </sectionGroup> 
</configSections> 
<appSettings> 
<add key="username" value="admin"/> 
<add key="password" value="admin"/> 
</appSettings> 
<connectionStrings/> 
<system.diagnostics> 
<sources> 
    <source name="System.ServiceModel.MessageLogging"> 
    <listeners> 
     <add name="messages" 
     type="System.Diagnostics.XmlWriterTraceListener" 
     initializeData="c:\logs\messages.svclog" /> 
    </listeners> 
    </source> 
</sources> 
</system.diagnostics> 

<system.serviceModel> 
<diagnostics> 
    <messageLogging logEntireMessage="true" 
logMalformedMessages="true" 
logMessagesAtServiceLevel="true" 
logMessagesAtTransportLevel="true" 
maxMessagesToLog="420"> 
    <filters> 
     <add nodeQuota="10" 
    xmlns:soap="http://www.w3.org/2003/05/soap-envelope"> 

/soap:Envelope/soap:Header 
     </add> 
    </filters> 
    </messageLogging> 
</diagnostics> 
</system.serviceModel> 
<system.web> 
    <compilation debug="true" > 

    </compilation> 
<authentication mode="Forms" /> 
</system.web> 
<applicationSettings> 
    <XML_New.Properties.Settings> 
     <setting name="XML_New_localhost_Service1" serializeAs="String"> 
      <value>http://localhost:1689/Admin.asmx</value> 
     </setting> 
    </XML_New.Properties.Settings> 
</applicationSettings> 
</configuration> 

파일이 C에 기록해야합니다 \ logs \ messages.svclog하지만 soeme 이유는 없습니다. 아무도 왜 그런 생각을 가지고 있니?

+0

아무것도 아직 모르겠어. –

+0

[C# SOAP 웹 서비스 클라이언트 - 모든 원시 SOAP 입력 및 출력을 기록하는 방법을 보여주는 예제?] (http://stackoverflow.com/questions/566855/c-sharp-soap-web-services-client- 예 - 그 - 보여 - 방법 - 투 - 로그 - 모든 - 원시 - 비누 -) –

+0

@ MK 감사합니다 나쁜 모양이 int와 아픈 게시물 aditional 질문은 내가 그때입니다. –

답변

4

asmx 서비스 레벨에서 비누 확장을 사용할 수 있습니다. 문서 및 작업 예제는 http://msdn.microsoft.com/en-us/library/system.web.services.protocols.soapextension.aspx입니다. 복사 한 내용을 모두 복사하여 덤프 경로를 GetInitializer으로 변경하면됩니다. +1

+0

사실 , 이것은 클라이언트 (.net/soap 기반)에서도 분명히 연결될 수 있습니다. 나는 그 자신을 몰랐다. 나는 이것을 asmx에서 여러 번했다. 매력처럼 작동합니다. –

0

FiddlerCore를 사용하여 HTTP에서 SOAP을 가로 채고 요청 및 응답에서 원하는 모든 데이터를 저장할 수 있습니다. 와이어 샤크를 통해 트래픽을 시청에서 분리하는 방법이 있다면

http://www.fiddler2.com/fiddler/Core/

관련 문제