ASPでCOMを使うには!!


Webシステムで、Windows Server 上のASP等からOLEオートメーションでWFRを起動する場合は、実行ユーザ(通常はIIS_USERS)に実行権限を与える必要があります。

<HTMLの例>
<html>
<head>
</head>
<body>
<form>
<object
    id="Wfr2008"
    classid="CLSID:D7157490-471F-40c6-8EDC-BBE04D643B35"
    height="100%" width="100%">
    <param name="FileName" value="GetReport.aspx?File=sample.wfr&Data=sample.txt">
</object>
</form>
</body>
</html>

<GetReport.aspxの例(Wonderful Report 2005 Preview)>
<%@ Page Language="VB" %>
<%
    Dim wfr_obj As Object
    Dim file_image As Byte()

    wfr_obj = Server.CreateObject("Wfr.Preview.1")
    wfr_obj.Open(Server.MapPath(Request.QueryString("File")))
    wfr_obj.Import("#1", 0, Server.MapPath(Request.QueryString("Data")))
    file_image = wfr_obj.GetBinaryImage(2)

    Response.ContentType="application/octer-stream"
    Response.BinaryWrite(file_image)

    System.Runtime.InteropServices.Marshal.ReleaseComObject(wfr_obj)
    wfr_obj = Nothing
%>

<GetReport.aspxの例(Wonderful Report 2008 Preview)>
<%@ Page Language="VB" %>
<%
    Dim wfr_obj As Object
    Dim file_image As Byte()

    wfr_obj = Server.CreateObject("Wfr.Preview.2")
    wfr_obj.Open(Server.MapPath(Request.QueryString("File")))
    wfr_obj.Import("#1", 0, Server.MapPath(Request.QueryString("Data")))
    file_image = wfr_obj.GetBinaryImage(2)

    Response.ContentType="application/octer-stream"
    Response.BinaryWrite(file_image)

    System.Runtime.InteropServices.Marshal.ReleaseComObject(wfr_obj)
    wfr_obj = Nothing
%>


<設定方法>

「コントロールパネル」−「管理ツール」から「コンポーネントサービス」を起動します。

「コンソール ルート」−「コンポーネントサービス」−「コンピュータ」−「マイ コンピューター」−「DCOMの構成」の中から、
「Wonderful Report 2005 Preview」または「Wonderful Report 2008 Preview」を選択し、マウス右ボタンで表示されるポップアップメニューから「プロパティ」を表示します。

「セキュリティ」タブの「起動とアクティブ化のアクセス許可」で「カスタマイズ」をチェックし「編集」ボタンから「起動とアクティブ化のアクセス許可」ダイアログを表示します。

IISの実行ユーザ(通常はIIS_IUSRS)を追加し、「ローカルからの起動」と「ローカルからのアクティブ化」をチェックします。

CreateObject("Wfr.Preview.1") の場合は「Wonderful Rpeort 2005 Preview」で上記設定を行います。
CreateObject("Wfr.Preview.2") の場合は「Wonderful Rpeort 2008 Preview」で上記設定を行います。
CreateObject("Wfr.Preview.3") の場合は「Wonderful Rpeort 2016 Preview」で上記設定を行います。