2

問題があり、適切な回答があれば、同じ問題を抱えている多くの人に役立つと思います.

問題は、IIS の「中信頼レベル」構成に関するものです。数か月前、ローカル マシンで「完全信頼レベル」構成の Web サイトをコーディングし、それをホストにアップロードしたところ、正常に動作していました。しかし、私のホスティング会社には信頼レベルに関する新しいルールがあり、現在は「中程度の信頼レベル」しか許可されていません。

私のウェブページは現在機能していません.私は自分のウェブサイトを適応させようとしましたが、それを行う方法がわかりません.そして、それは多くの人がどちらも知らないのは確かです..手伝って頂けますか?

最初に、ここに移動してローカル構成を変更しようとしましたが、

C:\Windows\Microsoft.NET\Framework\v4.0.30319\Config

私のwebconfigファイルを開いて、変更しました

<trust level="Full" originUrl="" />

<trust level="Medium" originUrl="" />

その後、テストのために、ASP デフォルト テンプレートを使用して新しい Web サイトを作成しました。動作していました。次に、Mysql データベースに接続するための参照として Mysql.dll を追加しました。しかし、そのスタックでセキュリティ例外がスローされました。

[SecurityException: タイプ 'System.Security.Permissions.SecurityPermission、mscorlib、Version=4.0.0.0、Culture=neutral、PublicKeyToken=b77a5c561934e089' のアクセス許可の要求が失敗しました。] MySql.Data.MySqlClient.MySqlTrace..cctor() + 0

ならどうしよう?もうmysqlデータベースに接続できませんか? または、解決策はありますか?Web サイト プロジェクト フォルダーの webconfig ファイルを変更したことがありません。ここで何かを変更する必要がありますか? みんな助けてください?

4

2 に答える 2

1

こんにちは、私はついに私の問題の解決策を見つけたので、同じ問題を抱えている人々を助けようとします.部分的な信頼と中程度の信頼レベルは同じことに注意してください.

質問に対する私の最初のステップは絶対に必要です。信頼レベルを「中」に変更することを忘れないでください。その後、 公式 Web サイトから適切な .Net Connector バージョンを取得する必要があり ます。ホスティング プロバイダーが使用しているバージョンを慎重に選択してください。たとえば、私のホスティング会社はMysql Connector Net 6.5.4を使用しています

次に、プロジェクトの webconfig ファイルを構成して、.dll ファイルを使用し、中程度の信頼レベルで必要な権限を取得する必要があります。

<configuration>このようなものの下に追加する必要があります。

 <mscorlib>
    <security>
      <policy>
        <PolicyLevel version="1">
          <SecurityClasses>
            <SecurityClass Name="MySqlClientPermission" Description="MySql.Data.MySqlClient.MySqlClientPermission, MySql.Data, Version=6.6.4.0, Culture=neutral, PublicKeyToken=c5687fc88969c44d"/>
          </SecurityClasses>
        </PolicyLevel>
      </policy>
    </security>
  </mscorlib>

システムが自動的に追加しない場合は、追加<system.web>する必要があります。

  <assemblies>
    <add assembly="MySql.Data, Version=6.5.4.0, Culture=neutral, PublicKeyToken=C5687FC88969C44D"/>
    <add assembly="MySql.Data.Entity, Version=6.5.4.0, Culture=neutral, PublicKeyToken=C5687FC88969C44D"/>
    <add assembly="MySql.Web, Version=6.5.4.0, Culture=neutral, PublicKeyToken=C5687FC88969C44D"/>
  </assemblies>

場合によっては、この手順では不十分な場合があり、web_mediumtrust.config の下で編集する必要があります。

C:\Windows\Microsoft.NET\Framework\v4.0.30319\Config

この行を下に追加する必要があります

<SecurityClasses>
  <securityclass Name="MySqlClientPermission" Description="MySql.Data.MySqlClient.MySqlClientPermission, MySql.Data, Version=6.5.4.0, Culture=neutral, PublicKeyToken=c5687fc88969c44d" />

<NamedPermissionSets>
  <iPermission class = "MysqlClientPermission" version = "1">  
    <add connectionString = "Server =; Database =;"  restrictions = "User =; User Id =; Password =; Port =; Pooling =;" KeyRestrictionBehavior = "(Prevent Usage | Allow Only)" /> 
  </iPermission>

使用しているバージョンに注意してください。それに応じて行を変更することを忘れないでください。それでもわからない場合は、非常に便利なリンクがあります

部分信頼における信頼レベル

于 2013-08-26T15:32:40.617 に答える
0

これは、MySql を中程度の信頼環境で動作させようとして、同様の問題を解決した方法です。

私たちはすべてを「本」にしようとしましたが、それを機能させることができませんでした!

MySql コネクタのバージョンが重要であることが判明しました。GAC のサーバーにインストールした MySqlClient のバージョンを Web ホスティング会社に尋ねてください

(GAC は単に、ライブラリがサーバーにインストールされていることを意味し、MySql.Data.dll を bin フォルダーにアップロードしなくても直接参照できるようにします。最新のインストール可能なバージョンは、http://dev.mysqlから入手できます。 .com/downloads/connector/net/ )。

ドライバーが GAC のサーバーにインストールされたら、次のように web.config で参照する必要がありますが、 Version=6.6.5.0 を Web ホスティング会社のバージョンに置き換えます

<compilation debug="true" targetFramework="4.0">
  <assemblies>
    <add assembly="MySql.Data, Version=6.6.5.0, Culture=neutral, PublicKeyToken=C5687FC88969C44D"/>
  </assemblies>    
</compilation>
于 2013-11-28T18:30:15.050 に答える