.NET COBOL アプリケーションを構成する前に、次のことを確認してください。
アプリケーションでネイティブ コード コンポーネントも使用する場合は、ライセンスを設定し、共有フォルダーを作成する必要があります。「ネットワーク サーバーからネイティブ COBOL アプリケーションを実行する方法」を参照してください。
ネットワーク サーバーから .NET COBOL アプリケーションを実行する場合は、適切な .NET ランタイム アセンブリをアプリケーションで使用できるようにする必要があります。
実行時に .NET アセンブリを検索してロードするメカニズムは、ネイティブ .dll に使用されるメカニズムとは異なります。ネイティブ アプリケーションでは、PATH システム環境変数を使用して、従属アセンブリを検索します。.NET COBOL アプリケーションの場合、必要な COBOL ランタイム アセンブリは、アプリケーションで検索できるように、アプリケーション ファイルを含むフォルダーと同じフォルダー内にある必要があります。それには、次の手順を実行します。
たとえば、%ProgramFiles(x86)%\Micro Focus\Enterprise Server\redist\v4.0 がアプリケーションのコピー先である場合は、このフォルダーを共有します。アプリケーションが .NET Framework v2.0 をターゲットとしている場合は、\redist\v2.0 フォルダーを共有します。
この方法は、アプリケーションで標準の COBOL CALL メカニズムを使用して従属アセンブリをロードするシナリオ (set <procedure-pointer> to entry "progname" や call "progname" など) には適用されません。この方法でロードされるプログラムは、PATH 環境変数を使用して検索します。ディプロイが容易になるように、すべての従属 .NET アセンブリを同じフォルダー内に保持することをお奨めします。
この場合に呼び出し先のアセンブリを検索するように PATH 環境変数を設定するときは、システム レベルではなく、app.config ファイルに直接変数を設定することをお奨めします。たとえば、app.config ファイルは次のようになります。
<?xml version="1.0" encoding="utf-8"?> <configuration> <configSections> <!--The following code declares a section group for application configuration --> <sectionGroup name="MicroFocus.COBOL.Application"> <section name="Switches" type="System.Configuration.NameValueSectionHandler" /> <section name="Environment" type="System.Configuration.NameValueSectionHandler" /> </sectionGroup> <!--The following code declares a section group for run-time configuration --> <sectionGroup name="MicroFocus.COBOL.Runtime"> <section name="Tunables" type="System.Configuration.NameValueSectionHandler" /> <section name="Switches" type="System.Configuration.NameValueSectionHandler" /> </sectionGroup> </configSections> <MicroFocus.COBOL.Application> <Switches /> <Environment> <add key="PATH" value="F:\myappfiles;%PATH%" /> </Environment> </MicroFocus.COBOL.Application> </configuration>
デフォルトでは、ネットワーク ドライブには「ローカル イントラネット」のパーミッションしかなく、必要となる可能性がある多くの操作が制限されます。このため、ネットワーク共有から .NET COBOL アプリケーションを実行する場合は、セキュリティ レベルを昇格する必要があります。これは、次の方法のいずれかで可能です。
<runtime> <loadFromRemoteSources enabled="true"/> </runtime>
次に例を示します。
<?xml version="1.0" encoding="utf-8" ?> <configuration> <configSections> <!--The following code declares a section group for application configuration --> <sectionGroup name="MicroFocus.COBOL.Application"> <section name="Switches" type="System.Configuration.NameValueSectionHandler" /> <section name="Environment" type="System.Configuration.NameValueSectionHandler" /> </sectionGroup> <!--The following code declares a section group for run-time configuration --> <sectionGroup name="MicroFocus.COBOL.Runtime"> <section name="Tunables" type="System.Configuration.NameValueSectionHandler" /> <section name="Switches" type="System.Configuration.NameValueSectionHandler" /> </sectionGroup> </configSections> <runtime> <!--The following line provides Full Trust for assemblies loaded from a network share --> <loadFromRemoteSources enabled="true"/> </runtime> </configuration>