2011-07-26 6 views
0

나는 하나의 메소드 인 UploadFile을 가진 상당히 간단한 웹 서비스를 만들었습니다. 분명히 내 컴퓨터에서 작동합니다. 그러나 일단 업로드하면 메서드는 상태 202 (Accepted)를 반환합니다. 그러나 파일이 거기에 도착하지 않으며 볼 수있는 오류가 없습니다. 거의 모든 초마다 로깅을 추가했지만 메서드가 실제로 실행되는 것처럼 보이지는 않습니다.호스팅 된 솔루션에서 WCF 서비스를 디버깅하는 방법은 무엇입니까?

어떻게 디버깅합니까?

[ServiceContract] 
interface IUploaderService 
{ 
    [OperationContract(IsOneWay = true)] 
    [WebInvoke(Method = "POST", UriTemplate = "/UploadFile?fileName={fileName}")] 
    void UploadFile(string fileName, Stream fileContents); 
} 


[ServiceBehavior(InstanceContextMode = InstanceContextMode.PerCall)] 
[AspNetCompatibilityRequirements(RequirementsMode = AspNetCompatibilityRequirementsMode.Allowed)] 
public class UploaderService : IUploaderService //ServiceHostFactory 
{ 
    public void UploadFile(string fileName, Stream fileContents) 
    { 
     Log.Add("In UploadFile"); 
    } 
} 
+1

IsOneWay = true로 작업해야합니까? 그렇지 않은 경우 서버에 오류가있는 경우 응답을받을 수 있습니다. – carlosfigueira

+0

http://stackoverflow.com/questions/664712/restful-wcf-service-image-upload-problem/664826#664826 – Yahia

+0

@carlosfigueira 나는 IsOneWay를 끄고 이제 서버가 'The 서버가 요청을 처리하는 중 오류가 발생했습니다. 자세한 내용은 서버 로그를 참조하십시오 .'. 기본적으로 저에게 원래 질문을합니다. 코드를 디버깅 할 수 없습니다. – AngryHacker

답변

2

당신은 흥미로운 문제가 있습니다. 나는 그것에 놀아서 http://blogs.msdn.com/b/carlosfigueira/archive/2011/08/02/wcf-extensibility-system-diagnostic-tracing.aspx의 게시물에 해결책을 적었습니다.

기본적으로 파일을 추적하는 대신 (추적하는 일반적인 방법), 응용 프로그램에서 추적을 수집하는 사용자 지정 추적 수신기를 추가합니다. GoDaddy (MySql, SqlServer, EasyDB)에서 제공하는 데이터베이스 중 하나를 사용하거나 게시물에 링크 된 코드 샘플 에서처럼 추적을 메모리에 저장하고 다른 WCF 서비스를 통해 노출 할 수 있습니다.

0

작동하지 않는 경우

[ServiceContract] 
interface IUploaderService 
{ 
    [OperationContract(IsOneWay = true)] 
    [WebInvoke(Method = "POST", UriTemplate = "/UploadFile?fileName={fileName}")] 
    [WebContentType("application/octet-stream")] 
    void UploadFile(string fileName, Stream fileContents); 
} 

를 다음 시도 나는 또한

[OperationContract] 

이 방법의 경우를 시도 할 것 : 여기

참조 내 서버 측 코드 서비스에서 어떤 일이 발생하면 고객 측에 대한 피드백을 받게됩니다.

+0

솔루션에는 .NET Framework에없는 WebContentType 특성이 필요합니다. – AngryHacker

관련 문제