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}\ ASPNET、IIS6およびIIS7ではネットワークサービス、IIS 7.5では構成済みのアプリケーションプールID)があります。アプリケーションがを介して偽装している場合、IDは匿名ユーザー(通常はIUSR_MACHINENAME)または認証された要求ユーザーになります。
ASP.NETにファイルへのアクセスを許可するには、エクスプローラーでファイルを右クリックし、[プロパティ]を選択して、[セキュリティ]タブを選択します。「追加」をクリックして、適切なユーザーまたはグループを追加します。ASP.NETアカウントを強調表示し、目的のアクセスのチェックボックスをオンにします。
ソースエラー:
現在のWebリクエストの実行中に、未処理の例外が生成されました。例外の発生源と場所に関する情報は、以下の例外スタックトレースを使用して識別できます。
[コンポーネントサービス]>[コンピューター]を開き、[マイコンピューター]を右クリックして、[プロパティ]>[COMSucrity]>[起動とアクティブ化...]>[デフォルトの編集]>[追加]>[詳細設定]>を選択します。
ユーザーIIS(IIS_IUSRS)が見つかりません。したがって、ASP.NETを選択して[OK]をクリックし、[ローカル起動とリモート起動]と[ローカルアクティベーション]と[リモートアクティベーション]を確認します。
システムを休止し、iis5でサイトを再度実行します。しかし、前にもう一度エラーを表示してください!