こんにちは、クラシック ASP ページの COM オブジェクトを作成するのはこれが初めてです。
この COM DLL を作成するときに従ったプロセスは次のとおりです。
1) 厳密な名前ツール (sn.exe) を使用し、アプリ内に .snk ファイルを配置しました。(sn -k myKey.snk)
2) 追加:
[assembly: AssemblyKeyFile(@"myKey.snk")]
[assembly: ComVisible(true)]
AssemblyInfo.cs に。KeyFile で次のような警告が表示されます。
「AssemblyKeyFile」の代わりに、コマンド ライン オプション「/keyfile」または適切なプロジェクト設定を使用してください
3) 管理者から次を実行します: SDK コマンド プロンプト:
tlbexp c:\\temp\\dll\\classicASPWSEnDecrypt.dll /out:c:\\temp\\dll\\classicASPWSEnDecrypt.tlb
regasm /tlb:c:\\temp\\dll\\classicASPWSEnDecrypt.tlb c:\\temp\\dll\\classicASPWSEnDecrypt.dll
gacutil /i c:\\temp\\dll\\classicASPWSEnDecrypt.dll
regasm c:\\temp\\dll\\classicASPWSEnDecrypt.dll /codebase
すべてがエラーなしでうまく登録されました。
私の従来の ASP ページには次のものがあります。
<%
Dim classicEnDecrypt
Set classicEnDecrypt = Server.CreateObject("classicASPWSEnDecrypt.Class1")
response.write(classicEnDecrypt.Encrypt("testing"))
%>
以下に示すように、 ProgID (OLEView を使用) は Class1 であることがわかりました。
そして、私の C# コード (ほんの一部) は次のとおりです。
namespace classicASPWSEnDecrypt
{
public class Class1
{
public string Encrypt(string PlainText)
{
[code here]
}
public string Decrypt(string EncryptedText)
{
[code here]
}
}
}
ローカル マシン (IIS7/Windows 7 Enterprise) で ASP ページを実行すると、次のエラーが表示されます。
Microsoft VBScript ランタイム エラー '800a01b6'
オブジェクトはこのプロパティまたはメソッドをサポートしていません:「暗号化」
/contactupdateWS.asp、49 行目
暗号化機能があるとわかっているのに、暗号化機能がないと言われる理由がよくわかりません!
何が欠けている可能性がありますか?