2017-12-20 1 views
0

appservice에는 데이터를 업그레이드하는 메소드가 있고 마지막으로 Ssrs를 통해 Pdf 형식으로 보고서가 작성된다고 상상해보십시오. 모든 메소드는 작업 단위이므로 데이터는 uow.CompleteAsync() 메소드를 호출 할 때까지 서버에서 커밋되지 않습니다. 따라서 GenerateSampleReport()를 호출 할 수 없습니다. 우리가 사용했던 문제 [작업 단위를 해결하기 위해 (= 사실 Isdisabled) 그래서 방법은 이렇게 기록됩니다 보고서를 제공하는 동안 예외가있는 경우aspnetboilerplate 템플릿의 UnitOfWork 내에서 SSRS 보고서를 어떻게 사용할 수 있습니까?

[UnitOfWork(IsDisabled =true)] 
    public async Task Method() 
    { 
     using (var uow = UnitOfWorkManager.Begin()) 
     { 
      //some data manipulation 

      await uow.CompleteAsync(); 
     } 

     var pdfFile GenerateSampleReport(); 
    } 

그러나, 보고서가 생성 및 데이터 수 없습니다 조작은 롤백되어야합니다 (데이터 무결성 문제). 문제를 해결하는 방법?

+0

'방법이 완료되지 않은 즉시 데이터로 보고서 제공'이란 무엇을 의미합니까? – aaron

+0

당신의 문제가 무엇인지는 분명하지 않습니다. – Nick

+0

@aaron 내 질문을 편집했습니다. 나쁜 영어에 대해 죄송합니다 – Omital

답변

0

자신의 작업 단위를 시작해서는 안됩니다. 그리고 UnitOfWork를 비활성화하지 마십시오. 일반적으로 Method()가 응용 프로그램 서비스 메서드 인 경우이 메서드는 원하는대로 작동해야합니다.

public async Task Method() 
{ 
     //some data manipulation... 
     var pdfFile GenerateSampleReport();//if any exception occurs in this line, the db transaction will be rolled back. 
} 

이전에 이것을 확인 했습니까?

+0

문제는 GenerateSampleReport()가 해당 웹 서비스 코드를 편집 할 수있는 경우 다른 컨텍스트에있는 – Omital

+0

에있는 SSRS 웹 서비스를 호출하고 결과가 성공 또는 실패라는 플래그를 반환하는 것입니다. 웹 서비스가 실패한 경우 GenerateSampleReport()에 예외를 throw합니다. –

관련 문제