4

WindowsXP_SP_3とIIS5(ローカルホスト)を使用し、asp.net4でサイトを構築し、次のコードを使用します。

Application appClass = new Application();
Document wordDoc = appClass.Documents.Add(Server.MapPath("~") + @"Files\tmp.docx");
wordDoc.SaveAs(@"e:\hp\Files\" + TextBox1.Text + ".docx");
wordDoc.Close();

VS2010でサイトを実行する場合は、OKです。ただし、IIS 5(ローカルホスト)で実行している場合は、次のエラーが表示されます。

CLSID {000209FF-0000-0000-C000-000000000046}のコンポーネントのCOMクラスファクトリの取得は、次のエラーのために失敗しました:80070005アクセスが拒否されました。(HRESULTからの例外:0x80070005(E_ACCESSDENIED))。

説明:現在のWebリクエストの実行中に未処理の例外が発生しました。エラーとエラーがコードのどこで発生したかについての詳細は、スタックトレースを確認してください。

例外の詳細:System.UnauthorizedAccessException:CLSID {000209FF-0000-0000-C000-000000000046}のコンポーネントのCOMクラスファクトリの取得が、次のエラーのために失敗しました:80070005アクセスが拒否されました。(HRESULTからの例外:0x80070005(E_ACCESSDENIED))。

ASP.NETは、要求されたリソースへのアクセスを許可されていません。リソースへのアクセス権をASP.NET要求IDに付与することを検討してください。ASP.NETには、アプリケーションが偽装していない場合に使用される基本プロセスID(通常、IIS5では{MACHINE}\ AS​​PNET、IIS6およびIIS7ではネットワークサービス、IIS 7.5では構成済みのアプリケーションプールID)があります。アプリケーションがを介して偽装している場合、IDは匿名ユーザー(通常はIUSR_MACHINENAME)または認証された要求ユーザーになります。

ASP.NETにファイルへのアクセスを許可するには、エクスプローラーでファイルを右クリックし、[プロパティ]を選択して、[セキュリティ]タブを選択します。「追加」をクリックして、適切なユーザーまたはグループを追加します。ASP.NETアカウントを強調表示し、目的のアクセスのチェックボックスをオンにします。

ソースエラー:

現在のWebリクエストの実行中に、未処理の例外が生成されました。例外の発生源と場所に関する情報は、以下の例外スタックトレースを使用して識別できます。


[コンポーネントサービス]>[コンピューター]を開き、[マイコンピューター]を右クリックして、[プロパティ]>[COMSucrity]>[起動とアクティブ化...]>[デフォルトの編集]>[追加]>[詳細設定]>を選択します。

ユーザーIIS(IIS_IUSRS)が見つかりません。したがって、ASP.NETを選択して[OK]をクリックし、[ローカル起動とリモート起動]と[ローカルアクティベーション]と[リモートアクティベーション]を確認します。

システムを休止し、iis5でサイトを再度実行します。しかし、前にもう一度エラーを表示してください!

4

2 に答える 2

6
  1. [コントロール パネル] -> [管理ツール] -> [コンポーネント サービス] に移動します。
  2. [コンポーネント サービス] -> [コンピューター] -> [マイ コンピューター] -> [DCOM 構成] をクリックしてツリーを展開します。
  3. CLSId 00020906-0000-0000-C000-000000000046を検索します(これは Word アプリケーション用です) 注: CLSId を検索しても見つからない場合は、「Windows Word アプリケーション」で検索してください。
  4. 00020906-0000-0000-C000-000000000046を選択 して、この CLSId を右クリックして [プロパティ] をクリックします。
  5. [プロパティ] 領域で、[セキュリティ] タブをクリックします。
  6. すべて (起動とアクティベーションのアクセス許可、アクセス許可、構成のアクセス許可) から [カスタマイズ] オプションを選択します。
  7. 新しい名前をすべて NETWORK SERVICE として追加し、この名前のすべての権限を許可します。
  8. 同じプロパティ エリアの [ID] タブに移動し、[このユーザー] としてオプションを選択してから、ユーザー名 (このマシンの管理者) とパスワードを追加します。[適用] をクリックします。
  9. コンポーネント サービスを更新し、アプリケーションが正常に動作しているかどうかを確認します。
于 2014-04-29T06:19:04.807 に答える
1

インターネット インフォメーション サービス (IIS) を開始します。アプリケーションの仮想ディレクトリを右クリックし、[プロパティ] をクリックします。[ディレクトリ セキュリティ] タブをクリックします。[匿名アクセスと認証制御] で、[編集] をクリックします。[匿名アクセス] チェック ボックスが選択されていないこと、および統合 Windows 認証のみが選択されているチェック ボックスであることを確認します。偽装で Windows 認証を使用するように ASP.NET を構成し、次の構成を使用します。

...
<authentication mode="Windows"/>
<identity impersonate="true"/>
...

于 2013-11-26T05:06:18.730 に答える