2011-12-06 86 views
0

我有「Class library projet」,稍後在Web服務器上作爲HttpHandler工作。所以我有本地2文件app.config(對於本地開發,因爲它是一個DLL)和web.config(對於遠程Web服務器)。爲HttpHandler加密配置文件

所以現在我想加密配置文件。所有東西都被加密並在遠程Web服務器上導入。但處理程序不起作用。我收到一個錯誤:"Failed to decrypt using provider 'My_Provider'. Error message from the provider: The RSA key container could not be opened."

在我的開發PC一切工作正常。哪裏不對?

所以這個我出口步驟

cd %windir%\Microsoft.NET\Framework\v4.0.30319

aspnet_regiis -pc "My_Keys" -exp

aspnet_regiis -pa "My_Keys" "IIS APPPOOL\CustomAppPool"

aspnet_regiis -pef "connectionStrings" "HandlerProjectPath" -prov "My_Provider"

aspnet_regiis -px "MyKeys" "HandlerProjectPath\MyKeys.xml" -pri

pause

這些都是重要的步驟

%windir%\Microsoft.NET\Framework\v4.0.30319\aspnet_regiis -pi "My_Keys" "MyKeys.xml"

pause

附:我的處理程序在名爲「CustomAppPool」的自定義AppPool中的IIS 7上工作。我專門在PC上創建了一個應用程序池名稱。

這是我configData

Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a,
processorArchitecture=MSIL"

 keyContainerName="My_Keys" 
     useMachineContainer="true" /> 
</providers> </configProtectedData> 

提前感謝!

回答

1

我認爲在導入密鑰對之後,您需要授予對分配給您的AppPool的IIS身份的容器訪問權限。

+0

是的,它幫助!謝謝! – user970742