0

私は、本番サーバーの1つに奇妙な問題があります。私たちは、.NETアプリケーションとWebサービスを使ってAXを統合したアーキテクチャを持っています。 System.IOオブジェクトを使用して、pdfレポートをバイトに変換し、この情報をWebサービスを通じてアプリケーションに送信します。私たちが使っている方法は、最近まで奇妙な結果が出始めてからうまく機能しました。本番環境で返されるバイト配列は、他の環境とは異なります。コードベースは明らかにすべての環境で同じです。バイト配列には47000のような大きな数があり、残りの環境には約3000が割り当てられます。これはappでレポートを生成する際に問題を引き起こします。System.Byte []は予期しない値を返します

このレポートには、アイテムとそのバーコードのAXS SSRSレポートが記載されています。レポートはAXクライアントで正常に印刷されます。しかし、それをWebサービスに渡すために、レポートはバイトに変換され、アプリに送信されてから、イメージに変換されてUIに表示されます。プロダクションで返されるバイトの違いのため、印刷されるイメージには項目番号がありますが、バーコードはありません。バーコードの代わりに空白の空白が表示されます。 SSRSサーバーにバーコードフォントがインストールされていることを確認しましたが、AXでレポートを直接印刷すると問題なく印刷できます。私はアーキテクチャがもっとシンプルだったかも知れないが、私が現時点で持っているものであり、それを機能させる必要があることを知っている。どんな助けもありがとう。ありがとう。

static System.Byte[] test() 
{ 
    str _filePath = "C:\\Users\\Harry\\Desktop\\ABC.PDF"; 

    System.Byte[]   pdfBuffer; 
    System.IO.FileInfo  fileInfo; 
    System.IO.FileStream fs; 
    int      size; 
    Set      permissionSet = new Set(Types::Class); 

    permissionSet.add(new FileIOPermission(_filePath,'r')); 
    permissionSet.add(new InteropPermission(InteropKind::ClrInterop)); 

    CodeAccessPermission::assertMultiple(permissionSet); 

    //Load the file 
    fileInfo = new System.IO.FileInfo(_filePath); 
    //Initiallize the byte array by setting the length of the file 
    size = int642int(fileInfo.get_Length()); 
    pdfBuffer = new System.Byte[size](); 
    // Stream the file 
    fs = new System.IO.FileStream(fileInfo.get_FullName(), System.IO.FileMode::Open, System.IO.FileAccess::Read); 
    fs.Read(pdfBuffer, 0, pdfBuffer.get_Length()); 
    fs.Close(); 
    fs.Dispose(); 

    //Revert the access 
    CodeAccessPermission::revertAssert(); 

    return pdfBuffer;  
} 
+1

1.バーコードを生成するフォントが本稼働環境にないか、SSRSレンダラーが認識できない... PDFへのレンダリングがクライアントマシンで行われていますか?コード例では、共有ドライブではなく、 'C:\\ Users \\ Harry \\ Desktop \\ ABC.PDF'というファイルへのパスが表示されるため、可能です。 2.バーコードフォントを最近インストールした場合は、[マシンを再起動する]必要があります(http://axcalated.blogspot.com.es/2014/09/custom-barcode-and-micr-fonts-on-ssrs)。 html)。 3. [下のコメント](http://stackoverflow.com/questions/16318891/displaying-barcode-in-ssrs-report) –

+1

を参照してください。4.サーバーでのレンダリングが不可能な場合は(1)バーコードフォントをインストールしてみてくださいクライアントマシン(&restart!)を実行して、レポートをもう一度PDFとしてレンダリングします。 –

+0

こんにちはIan_socho。私たちはSSRSサーバーにフォントをインストールしていましたが、プロダクションサーバーとしてサーバーを再起動しませんでした。これが必要なのです!私たちはそれをし、それは働いた。バーコードフォントがSSRSサーバーにありませんでした。あなたのお返事ありがとうございました。 – Harry

答えて

1

解決方法は、レポートサーバーにバーコードフォントをインストールし、サーバーを再起動することでした。私たちはサーバーの再起動を延期しました。 必要なフォントを見つけるには、AXクライアントでssrsレポートを生成し、pdfにエクスポートします。 Adobe Readerから、レポートのプロパティを確認し、フォントタブに必要なバーコードを表示することができます。それはあなたのフォントです。

+0

答えを解説してくれてありがとう、ハリー。 –

関連する問題