`InsertFile`を使ってIIS上のウェブサイトからファイルを保存する

私は単語の文書にファイルを追加しようとしています

application.Selection.InsertFile(file);

しかし、それは例外を引き起こす

COMException: The document name or path is not valid

そしてそれを保存する

document.SaveAs(path);

しかし、私は例外を得る

The object invoked has disconnected from its clients. (Exception HRESULT: 0x80010108 (RPC_E_DISCONNECTED))

完全に同じコードは、 Visual Studioから実行すると機能します。 例外は、 IISから実行すると発生します。

それはいくつかの許可に関連していますか? ISUSR ネットワークネットワークサービス System code>、 Administrators ...また、偽装者を管理者アカウントで使用しようとしました。

IISから実行したときに動作するように修正するにはどうすればよいですか?


Here is the class I made to manipulate the doc: http://pastebin.com/yB2s0jn4

そして、私はそれをどのように呼んでいるのですか?

using (var doc = new HtmlWordDocument(outFile))
{
   //calls Selection.InsertFile( file )
    doc.WriteContent(tempFile);

   //calls document.SaveAs()
    doc.Save();
}
3
@Simonファイルのフォルダーに対してフルコントロールの Everyone 権限を追加し、管理者の資格情報を使用するようにIIS App Poolを構成しました。何も変わっていません...
追加された 著者 BrunoLM,
やあ、私も同じ問題があります。解決しましたか? :((
追加された 著者 Payedimaunt,
ファイルセキュリティとIIS AppPoolのセキュリティアカウントを確認しましたか?
追加された 著者 Simon,
tempFileフォルダはどうですか?
追加された 著者 Simon,

2 答え

偽装を試みましたか( ASP.NETアプリケーションで偽装を実装する方法)?以下のように:

System.Security.Principal.WindowsImpersonationContext impersonationContext;
impersonationContext = 
    ((System.Security.Principal.WindowsIdentity)User.Identity).Impersonate();

    using (var doc = new HtmlWordDocument(outFile))
    {
       //calls Selection.InsertFile( file )
        doc.WriteContent(tempFile);

       //calls document.SaveAs()
        doc.Save();
    }

impersonationContext.Undo();
0
追加された
運がない管理者に偽装しようとしましたが、同じエラーが発生します...
追加された 著者 BrunoLM,

IISADMINサービスが有効になっている必要がありますが、デフォルトではistalledではありません。このサービスはIISを他のOSリソースに接続することを許可します

これをチェックして...

https://social.msdn.microsoft.com/Forums/en-US/28ddf643-0f9b-46e6-a8c5-a83f5a36c361/not-able-to -see-iis-admin-service-in-windows-server-2008-r2?フォーラム= netfxbcl

この...

https://support.microsoft.com/en-us/kb/555134

0
追加された