13

アセンブリを作成し、ReportingServicesレポートで参照しました。レポートをローカルでテストし(機能します)、レポートをレポートサーバーにアップロードしました(機能しません)。

これが私が書いたカスタムコードによってスローされるエラーです。

System.Security.SecurityException:タイプ'System.Security.Permissions.SecurityPermission、mscorlib、Version = 2.0.0.0、Culture = neutral、PublicKeyToken=b77a5c561934e089'のアクセス許可の要求が失敗しました。System.Security.CodeAccessSecurityEngine.CheckNReturnSO(PermissionToken permToken、CodeAccessPermission request、StackCrawlMark&stackMark、Int32 unrestrictedOverride、Int32 create)at System.Security.CodeAccessSecurityEngine.Assert(CodeAccessPermission cap、StackCrawlMark&stackMark)at System.Security.CodeAccessPermission.Assert()at ReportExprHostImpl.CustomCodeProxyの[SnippedMethodName]。[SnippedMethodName]失敗したアクションは次のとおりです。Demand最初に失敗したアクセス許可のタイプは次のとおりです。System.Security.Permissions.SecurityPermission失敗したアセンブリのゾーンは次のとおりです。

このプロジェクトは私が受け継いだものであり、私はそれをよく知らない。私は(今)コードを持っていますが、少なくともそれで作業することができます:)

失敗しているコードは次のとおりです。

    Dim fio As System.Security.Permissions.FileIOPermission = New System.Security.Permissions.FileIOPermission(Security.Permissions.PermissionState.Unrestricted)
    fio.Assert()

ただし、この種のものもどこにでもあります。

Private Declare Function CryptHashData Lib "advapi32.dll" (ByVal hhash As Integer, ByVal pbData As String, ByVal dwDataLen As Integer, ByVal dwFlags As Integer) As Integer

これらのいずれかが、ReportingServicesがそのままでは対応できないものであることがわかります。

4

4 に答える 4

18
<system.web>

<trust level="Full"/>

</system.web>

これをweb.configで試してください

于 2011-04-01T17:03:22.593 に答える
8

これは私が問題を解決することができた方法です:

  • 問題のカスタム アセンブリに強く署名する
  • rssrvpolicy.config ファイルを変更して、アセンブリのアクセス許可を追加します。

                        <CodeGroup
                            class="UnionCodeGroup"
                            version="1"
                            PermissionSetName="FullTrust"
                            Name="Test"
                            Description="This code group grants the Test code full trust. ">
                            <IMembershipCondition
                                    class="StrongNameMembershipCondition"
                                    version="1"
                                    PublicKeyBlob="0024000004800000940100000602000000240000575341310004000001000100ab4b135615ca6dfd586aa0c5807b3e07fa7a02b3f376c131e0442607de792a346e64710e82c833b42c672680732f16193ba90b2819a77fa22ac6d41559724b9c253358614c270c651fad5afe9a0f8cbd1e5e79f35e0f04cb3e3b020162ac86f633cf0d205263280e3400d1a5b5781bf6bd12f97917dcdde3c8d03ee61ccba2c0"
                                />
                        </CodeGroup>
    

補足: これは 、署名されたアセンブリの公開鍵トークンと blob を取得するためのアセンブリ VS トリックの公開鍵 blob を取得するための優れた方法です。

于 2008-09-01T02:16:49.710 に答える