0

リンクを 1 回クリックすると、.docx、.doc、.pdf などのファイルを開くことができる Web サービスを使用できるかどうかを知る必要があります。

私のシナリオ。名前、住所などの特定のユーザーの詳細を収集するフォームがあります...コメントと、履歴書、プロジェクトレポートなどの1つまたは2つのファイルもアップロードします.

フォームが検証されると、この情報はデータベースに保存され、電子メールはフォームの詳細とともに xyz@abc.com 電子メール アドレスに送信されます。これにより、管理者は常に電子メールでより迅速に情報を受け取ることができます。

アップロードされたドキュメントを電子メールの添付ファイルとして送信するか、関連ドキュメントを開くことができるコードを記述する必要があります。

これにWebサービスが必要かどうかわかりません。

どうするのが一番いいのかアドバイスお願いします。

私のウェブサイトは asp.net ベースです。C#.

4

1 に答える 1

1

この場合、実際には Web サービスは必要ありません。

メーラー コードをバックエンド ルーチン (ビジネス ロジック レイヤー) に委任するだけで、通常の を使用して添付ファイルとしてファイルを取得できますSystem.Net.Mailsmtp.SendAsyncの代わりに使用smtp.Sendして、Web フォームをブロックしないようにします。バックエンド ルーチンを WCF のようなサービスにすることもできます。または別の .dll。レイヤーをどのように構成したかによって異なります。

ただし、メーラー コードが別の層や層ではなく、コード ビハインド自体にある場合は、扱いSendAsyncが難しくなる可能性があります。次に、いくつかのオプションがあります。

  1. asyncページのディレクティブを使用してページにしasyncます。または、
  2. スレッドを生成して作業を行います.... System.Threading.ThreadPool.QueueUserWorkItem... ...

このリンクに記載されているように、他の回避策もあります: http://blog.jdconley.com/2009/01/fire-and-forget-email-webservices-and.html

作業を簡単にするビジネスロジック層に委任することをお勧めします。

もちろん、smtp.Sendオーバーヘッドがそれほど大きくない場合は、いつでも を使用して同期的に作業できます。

于 2013-09-24T07:29:55.640 に答える