10

MVC3 プロジェクトで Web 配置ツールキットを使用しようとしていますが、全体的に配置は正常に機能しますが、データベースへの接続文字列には、2 つの数字が続くパーセント (%) 文字を含むパスワードがあります。展開ツールキットは、これを 16 進文字の置換として変換しているようです。この文字の置換を防ぎながら、開発者のマシンで接続文字列を使用できるようにする方法はありますか? Web.Debug.Config ファイルに置換を入れてみました。% の代わりに %25 を追加して、% 文字だけを置き換えようとしても、完全な値を置き換えようとしました。

例:

<connectionStrings>
    <add name="MyDB" connectionString="server=Server1;uid=user1;pwd=abc123%72;database=Database1;"
</connectionStrings>

に置き換えられます

<connectionStrings>
    <add name="MyDB" connectionString="server=Server1;uid=user1;pwd=abc123r;database=Database1;"
</connectionStrings>
4

2 に答える 2

13

接続文字列の pwd 部分を次のように設定します。

pwd=abc123%252572

多くの試行錯誤の後、私はそれがダブルパスを行うことを発見しました. 最初のパスは%2525%25に変換し、2 番目のパスは%25%に変換します。これが、%2572 を使用したときに r になった理由です (%72 は r の Unicode コードです)。これは、パーサーのバグのように思えます。おそらく、より詳しい人がより良い説明をすることができます。

于 2012-03-30T20:42:59.367 に答える
0

私はまったく同じ問題に遭遇しました(もちろん別のパスワードで)。

開発者のマシンでデータベースへの接続文字列を機能させ続けるために、「異なる」接続文字列を使用するように公開設定を変更しました。

あなたの例: web.config には以下が含まれます。

<connectionStrings>
<add name="MyDB" connectionString="server=Server1;uid=user1;pwd=abc123%72;database=Database1;"
</connectionStrings>

発行設定の下でプロジェクトを右クリックし、発行...を選択し、設定->データベースに移動します。データベース MyDB の場合は、次のように入力します。

 server=Server1;uid=user1;pwd=abc123%72;database=Database1;

これにより、開発者のマシンはデータベースへの接続を保持し、ホスト マシンは直接または teamcity を介して正しい接続文字列を自動的に使用することができました。

于 2014-08-27T09:05:39.573 に答える