2016-05-05 17 views
0

私は、USB経由で接続されたプリンタでテキストを送信するプリンタ用のAPIライブラリを持つシンプルなデスクトップアプリケーションを用意しています。デスクトップアプリケーションは正常に動作します。シリアルポートはWCF経由でアクセス可能です

目的は、テキストを印刷するWCFサービス(Windowsサービスでホストされる)を作成することです。 WCFサービスのデバッグログから、データがプリンタに正しく送信されたが、プリンタレポートが失敗したことがわかりました。コードとデータはデスクトップ/ WCFサービスで全く同じです。残念ながら、APIライブラリ関数の結果は「失敗」であり、例外/追加情報はありません。 WCFサービスのアプリケーションタイプは、デフォルトではシリアルポートにアクセスできません。 WCFサービスの特別な設定が必要ですか?

のWindows 10

の.NET Framework 4

のVisual Studio 10

プリンタ:SANE SK1-21(API UpdSdk.dll)

WCFサービスは、Windowsサービス

でホストされています

更新 新しいミニマリストウィンドウserを作成しようとしました最低限のコードで - 印刷が失敗しました。私は新しいWindowsフォームアプリケーションとコンソールアプリケーションも作成していましたが、コードは同じで、印刷もうまくいきます。

+0

あなたのwinformsアプリケーションが実行されたのと同じユーザーとしてWindowsサービスが実行されていますか? –

+0

私は管理者とcmdから "net start ...."でサービスを開始しました。 Winformアプリケーションは通常のユーザー権限で正常に起動します。 – Majkl

+1

'services.msc'を使用して、サービスが実行されているユーザーを特定します。それが 'SYSTEM'の場合、そのユーザはデバイスドライバにアクセスすることができないかもしれません。通常のユーザーに変更してみてください。 –

答えて

0

解決策が1つ見つかりました。

でWindowsサービス(ホストされているwcfサービス)をインストールすると、プリンタがうまく動作します。ユーザー特権については、1.618いただきありがとうございます。

LocalSystemのような実行は、セキュリティの理由から適切ではありません。私はおそらくいくつかのこのサービスのための特別なユーザーアカウントを作成する必要がありますか?特定の特権。だから私は自分自身の答えを受け入れることができません:)

関連する問題