9

このエラーを修正する方法を正しい方向に向けてくれる人はいますか?

System.Web.Services.Protocols.SoapException: Server was unable to process request. 
     ---> System.Security.SecurityException: Request for principal permission failed.
at System.Security.Permissions.PrincipalPermission.ThrowSecurityException()
at System.Security.Permissions.PrincipalPermission.Demand()
at System.Security.PermissionSet.DemandNonCAS()
at LiveDocx.MailMerge.SetLocalTemplate(String template, String format)

会社が LiveDocx から購入したこのソフトウェアをインストールしました。そのため、コードを変更したり、コードを読んだりすることさえできません。ドキュメントに従ってすべてをインストールし、サイトが機能することを確認しました。IIS、フォルダーのアクセス許可、および Web.config の設定のみを変更できます。私たちのサーバー、彼らのソフトウェア。

現在、Web サービスにログインしたままにすることに問題があります。SOAP クライアントと思われる前に、ベンダーのサーバーを呼び出して動作を確認しました。

ローカルでは、ログイン中に Web サービスを正常に呼び出すことができ、正常に動作します。ただし、後続の呼び出しを行うと、Request for principal permission failed.

テクニカル サポートの要請で<trust level="Full" />、web.config に追加しましたが、うまくいきませんでした。現在、彼らは私たちのメールへの返信を停止しています。

私は ASP.NET 開発者ではないため、サーバー設定に関する知識は限られています。このエラーが発生する理由と、この問題を解決するために探すべきいくつかの場所を誰かが正しい方向に向けることができますか?

4

5 に答える 5

3

私は最終的に解決策を見つけました。アクセス許可に関するこのエラーは、少し誤解を招きます。多くの試行錯誤の後、私は最終的に、アプリケーション プール ユーザーのアクセス許可がこの問題とは関係がないことを受け入れました。web.configこれにより、設定を調査するようになり、そこで問題が見つかりました。

問題は、提供されたファイルにタグと必要な設定web.configが欠落していたことです。<authentication>このタグ (私の理解では) は、Cookie を有効にするものです。LiveDocx に関係なくても、これがこのエラーで他の人に役立つことを願っています。イライラRequest for principal permission failed.するエラーになるさまざまな理由で発生する可能性があるようです。

この記事は非常に役に立ちました。方法: ASP.NET 2.0 でメンバーシップを使用する

于 2012-01-18T16:00:29.677 に答える
2

要求を実行しているユーザーのIDが疑われます。これは、IISアプリケーションが実行されているWebサイトのASP.Netアプリケーションプールユーザーである可能性があります。

これをテストする最も簡単な方法は、IISアプリケーション用の新しいアプリケーションプールを作成し(現在のアプリプールに他のアプリがない場合)、アプリプールに別のIDを選択することです(ネットワークサービスから始めることもできますが、ローカルユーザーが必要です)、アプリをそのプールに割り当てます。

これにより、アプリプールIDの権限に問題があるかどうかがわかります。

于 2012-01-11T02:49:13.653 に答える
2

間違った Cookie 名を使用するように構成された Web サイトの下にアプリケーションがあったため、これに遭遇しました。

ルート Web サイトの web.config は次のようになりました

<authentication mode="Forms">
  <forms name="AuthCookie" path="/"></forms>
</authentication>

その下のアプリケーションには、次のような web.config がありました

<authentication mode="Forms">
  <forms name="WRONGCOOKIENAME" path="/"></forms>
</authentication>

アプリケーションには、次のようなコンストラクターを持つ Web フォームがありました

[PrincipalPermissionAttribute(SecurityAction.Demand, Role = "Foo", Authenticated = true)]

そのため、認証が必要でしたが、Cookie 名が間違っていたため認証がありませんでした。Cookie 名を修正すると、エラーが解決しました。

于 2012-08-14T17:23:44.527 に答える