.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>