1

Pkcs12ProtectedConfigurationProviderを使用するプロジェクトがあります。Windows Server 2008 sp2またはr2を対象とする場合、Azureでこのdllを使用しても問題は発生しませんでした。ただし、Windows Server 2012(osFamily = "3")を使用してAzureに展開しようとすると、アセンブリが見つからないという例外が発生しました。

エミュレータでこれに遭遇したことをぼんやりと思い出します。解決策は、このdllをGACに追加することでした。私はグーグルで検索し、紺碧のスタートアップタスクとしてDLLをGACにインストールする方法に関するこれらの手順を見つけました。Webロールプロジェクトのルートにgacutilと関連する.cmdファイルがある限り、すべてが機能します。ただし、これを他のスタートアップコマンドがあるアプリの/startupフォルダーに移動したいと思います。

これまでのところ、これを機能させることができませんでした。gacutilに対してコマンドを実行した後、gacutilに出力を表示させることができなかったため、gacutilもあまり役に立ちません。これが私が試したことです:

csdefファイル内:

<Startup>
  <!-- other tasks, such as disabling the IIS idle timeout -->
  <Task commandLine="startup\gacRegistrations.cmd" executionContext="elevated" taskType="simple" />
</Startup>

gacRegistrations.cmdファイル内:

gacutil /nologo /i ..\PKCS12ProtectedConfigurationProvider.dll
exit /b 0

問題は、cmdファイル内のdllの場所を参照する構文に関係していると思います。関連するすべてのファイルは、アクションをビルドするように設定されています:noneおよび出力ディレクトリにコピー:常にコピーします。ただし、gacutil.exeファイルとcmdファイルはwebrole / bin / startupにコピーされますが、PKCS12ProtectedConfigurationProvider.dllファイルはwebrole/binの1フォルダー上にあります。

ここでの正しい構文は何ですか?やってみるべきgacutil /nologo /i ..\.\PKCS12ProtectedConfigurationProvider.dllですか?私が言ったように、ファイルが/ startupディレクトリにネストされていない場合、すべてが正常に機能します。

4

1 に答える 1

2

現在のディレクトリは常に bin フォルダーであるため、次のことを試してください。

startup\gacutil /nologo /i PKCS12ProtectedConfigurationProvider.dll
exit /b 0
于 2012-11-19T22:39:55.070 に答える