2

ASPアプリケーションを入手しましたが、古いサーバーですべてのコードが正常に機能していることを確認します。

最近、アプリケーションをWindows2008サーバーR2SP1に移動しました。展開後、default.aspページに4つの異なるファイルが含まれています。問題はすべてのファイルにあるため、1つのファイルを例として取り上げます。

メインファイル(default.asp)は、上部のオブジェクト作成コードの下にあります。

<%
Dim objTdsComponentLink, objTdsPageLink
Set objTdsComponentLink = Server.CreateObject("cd_link.ComponentLink")
Set objTdsPageLink= Server.CreateObject("cd_link.PageLink")
%>

ここではすべてが正常に機能し、エラーなしでオブジェクトを使用できます。

上で述べたように、4つの異なるファイルを含め、すべてのファイルに、以下のようにPageLinkサービスの新しいオブジェクトを作成しています。

Set PageLink = Server.createObject("cd_link.PageLink")
<%  strURL = PageLink.GetLink("tcm:0-79-1", "tcm:79-64940-64", "", "", "more", True).URL%>

問題は、新しいオブジェクトをSet PageLink = Server.createObject( "cd_link.PageLink")として宣言しようとすると、エラーが発生することです。ただし、default.aspで上記で宣言されているのと同じオブジェクトを使用すると、完全に機能し、新しいオブジェクトを使用または作成しようとすると、以下のエラーが発生します。

error '800706be'
/include/home/FuelIndex.asp, line 26

ここでいくつかの構成/インストールが欠落していて、メインページ(default.asp)オブジェクトで機能し、古いセットアップで正常に機能している理由は驚くべきものです。

上記の問題についていくつかの提案/解決策を提供していただければ幸いです。

ありがとう。

4

1 に答える 1

3

IIS7を使用していると思います。Webサーバーの役割の機能としてサーバーサイドインクルードがオンになっていることを確認してください。サーバー2008以降のマシンではデフォルトでオンになっていません。サーバー構成の下で、IISの役割を追加/削除します。

インクルードが実際に親パスにある場合は、IISで親パスが有効になっていることを確認してください。インクルードコードの構文が正しいことを確認してください。インクルードファイルよりも柔軟性が少し高いため、インクルード仮想でテストすることをお勧めします。

最後に、作成するコンポーネントが32ビットの場合は、アプリケーションプールが32ビットであることを確認してください。または、それが使用している場合は64ビット。

于 2012-07-16T07:13:52.650 に答える